feat(common): restructure traefik/ingress middlewares (#31171)

**Description**

moves the middlewares around and adds unit tests

**⚙️ Type of change**

- [x] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [x] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [x] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [ ] ⚖️ My code follows the style guidelines of this project
- [ ] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning
- [ ] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):` or `chore(chart-name):`

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Co-authored-by: Stavros Kois <s.kois@outlook.com>
Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Kjeld Schouten
2025-02-01 21:49:53 +01:00
committed by GitHub
co-authored by Stavros Kois Stavros Kois
parent 1d24bd1c0a
commit a27d735b9d
76 changed files with 5339 additions and 4992 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ apiVersion: v2
appVersion: unknown appVersion: unknown
dependencies: dependencies:
- name: common - name: common
version: ~25.4.0 version: ~25.5.0
repository: file://../common/ repository: file://../common/
condition: "" condition: ""
alias: "" alias: ""
@@ -20,18 +20,19 @@ tests:
annotations: annotations:
g_annotation1: global_annotation1 g_annotation1: global_annotation1
g_annotation2: "{{ .Values.annotation2 }}" g_annotation2: "{{ .Values.annotation2 }}"
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
labels: type: buffering
label1: "{{ .Values.label1 }}" labels:
label2: label2 label1: "{{ .Values.label1 }}"
annotations: label2: label2
annotation1: "{{ .Values.annotation1 }}" annotations:
annotation2: annotation2 annotation1: "{{ .Values.annotation1 }}"
data: annotation2: annotation2
foo: bar data:
foo: bar
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -67,13 +68,14 @@ tests:
- it: should pass with middlewares created with namespace - it: should pass with middlewares created with namespace
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
namespace: some-namespace type: buffering
data: namespace: some-namespace
foo: bar data:
foo: bar
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -83,13 +85,14 @@ tests:
- it: should pass with middlewares created with object namespace from tpl - it: should pass with middlewares created with object namespace from tpl
set: set:
key: some-namespace key: some-namespace
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
namespace: "{{ .Values.key }}" type: buffering
data: namespace: "{{ .Values.key }}"
foo: bar data:
foo: bar
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -101,12 +104,13 @@ tests:
key: global-namespace key: global-namespace
global: global:
namespace: "{{ .Values.key }}" namespace: "{{ .Values.key }}"
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
data: type: buffering
foo: bar data:
foo: bar
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -119,12 +123,13 @@ tests:
namespace: "{{ .Values.key }}" namespace: "{{ .Values.key }}"
global: global:
namespace: global-namespace namespace: global-namespace
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
data: type: buffering
foo: bar data:
foo: bar
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -7,12 +7,13 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: add-prefix enabled: true
data: type: add-prefix
prefix: some-prefix data:
prefix: some-prefix
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -26,12 +27,13 @@ tests:
- it: should fail with missing prefix - it: should fail with missing prefix
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: add-prefix enabled: true
data: type: add-prefix
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (add-prefix) - Expected [prefix] to be set errorMessage: Middleware (add-prefix) - Expected [prefix] to be set
@@ -7,21 +7,22 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: basic-auth enabled: true
data: type: basic-auth
secret: some-secret data:
my-middleware2: secret: some-secret
enabled: true my-middleware2:
type: basic-auth enabled: true
data: type: basic-auth
users: data:
- username: some-username users:
password: some-password - username: some-username
- username: some-other-username password: some-password
password: some-other-password - username: some-other-username
password: some-other-password
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -55,27 +56,29 @@ tests:
- it: should fail with missing both users and secret - it: should fail with missing both users and secret
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: basic-auth enabled: true
data: type: basic-auth
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set errorMessage: Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set
- it: should fail with both secret and users set - it: should fail with both secret and users set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: basic-auth enabled: true
data: type: basic-auth
secret: some-secret data:
users: secret: some-secret
- username: some-username users:
password: some-password - username: some-username
password: some-password
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both errorMessage: Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both
@@ -7,16 +7,17 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
data: type: buffering
maxRequestBodyBytes: 1024 data:
memRequestBodyBytes: 1024 maxRequestBodyBytes: 1024
maxResponseBodyBytes: 1024 memRequestBodyBytes: 1024
memResponseBodyBytes: 1024 maxResponseBodyBytes: 1024
retryExpression: some-expression memResponseBodyBytes: 1024
retryExpression: some-expression
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -34,12 +35,13 @@ tests:
- it: should pass with only maxRequestBodyBytes set - it: should pass with only maxRequestBodyBytes set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
data: type: buffering
maxRequestBodyBytes: 1024 data:
maxRequestBodyBytes: 1024
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -50,16 +52,17 @@ tests:
- it: should render 0 and non-null values - it: should render 0 and non-null values
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
data: type: buffering
maxRequestBodyBytes: 0 data:
memRequestBodyBytes: null maxRequestBodyBytes: 0
maxResponseBodyBytes: 1024 memRequestBodyBytes: null
memResponseBodyBytes: 1024 maxResponseBodyBytes: 1024
retryExpression: "" memResponseBodyBytes: 1024
retryExpression: ""
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -7,15 +7,16 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: chain enabled: true
data: type: chain
middlewares: data:
- name: some-name middlewares:
expandObjectName: false - name: some-name
- name: some-other-name expandObjectName: false
- name: some-other-name
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -31,12 +32,13 @@ tests:
- it: should fail with missing middlewares - it: should fail with missing middlewares
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: chain enabled: true
data: type: chain
middlewares: [] data:
middlewares: []
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (chain) - Expected [middlewares] to be set errorMessage: Middleware (chain) - Expected [middlewares] to be set
@@ -7,10 +7,11 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: compress enabled: true
type: compress
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -7,10 +7,11 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: content-type enabled: true
type: content-type
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -7,20 +7,21 @@ release:
tests: tests:
- it: should pass with values - it: should pass with values
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: forward-auth enabled: true
data: type: forward-auth
address: some-address data:
authResponseHeadersRegex: some-regex address: some-address
trustForwardHeader: true authResponseHeadersRegex: some-regex
authResponseHeaders: trustForwardHeader: true
- some-header authResponseHeaders:
authRequestHeaders: - some-header
- some-header authRequestHeaders:
tls: - some-header
insecureSkipVerify: true tls:
insecureSkipVerify: true
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -42,65 +43,70 @@ tests:
- it: should fail with missing address - it: should fail with missing address
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: forward-auth enabled: true
data: type: forward-auth
authResponseHeadersRegex: some-regex data:
authResponseHeadersRegex: some-regex
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (forward-auth) - Expected [address] to be set errorMessage: Middleware (forward-auth) - Expected [address] to be set
- it: should fail with invalid authResponseHeaders - it: should fail with invalid authResponseHeaders
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: forward-auth enabled: true
data: type: forward-auth
address: some-address data:
authResponseHeaders: some-header address: some-address
authResponseHeaders: some-header
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (forward-auth) - Expected [authResponseHeaders] to be a list, but got [string] errorMessage: Middleware (forward-auth) - Expected [authResponseHeaders] to be a list, but got [string]
- it: should fail with invalid authRequestHeaders - it: should fail with invalid authRequestHeaders
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: forward-auth enabled: true
data: type: forward-auth
address: some-address data:
authRequestHeaders: some-header address: some-address
authRequestHeaders: some-header
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (forward-auth) - Expected [authRequestHeaders] to be a list, but got [string] errorMessage: Middleware (forward-auth) - Expected [authRequestHeaders] to be a list, but got [string]
- it: should fail with invalid tls.insecureSkipVerify - it: should fail with invalid tls.insecureSkipVerify
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: forward-auth enabled: true
data: type: forward-auth
address: some-address data:
tls: address: some-address
insecureSkipVerify: some-value tls:
insecureSkipVerify: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (forward-auth) - Expected [tls.insecureSkipVerify] to be a boolean, but got [string] errorMessage: Middleware (forward-auth) - Expected [tls.insecureSkipVerify] to be a boolean, but got [string]
- it: should fail with invalid trustForwardHeader - it: should fail with invalid trustForwardHeader
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: forward-auth enabled: true
data: type: forward-auth
address: some-address data:
trustForwardHeader: some-value address: some-address
trustForwardHeader: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (forward-auth) - Expected [trustForwardHeader] to be a boolean, but got [string] errorMessage: Middleware (forward-auth) - Expected [trustForwardHeader] to be a boolean, but got [string]
@@ -7,59 +7,60 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: headers enabled: true
data: type: headers
customRequestHeaders: data:
some-name: some-value customRequestHeaders:
some-other-name: some-other-value some-name: some-value
customResponseHeaders: some-other-name: some-other-value
some-name: some-value customResponseHeaders:
some-other-name: some-other-value some-name: some-value
accessControlAllowCredentials: true some-other-name: some-other-value
accessControlAllowHeaders: accessControlAllowCredentials: true
- some-header accessControlAllowHeaders:
- some-other-header - some-header
accessControlAllowMethods: - some-other-header
- GET accessControlAllowMethods:
- DELETE - GET
accessControlAllowOriginList: - DELETE
- some-origin accessControlAllowOriginList:
- some-other-origin - some-origin
accessControlAllowOriginListRegex: - some-other-origin
- some-origin-regex accessControlAllowOriginListRegex:
- some-other-origin-regex - some-origin-regex
accessControlExposeHeaders: - some-other-origin-regex
- some-header accessControlExposeHeaders:
- some-other-header - some-header
accessControlMaxAge: 1000 - some-other-header
addVaryHeader: true accessControlMaxAge: 1000
allowedHosts: addVaryHeader: true
- some-host allowedHosts:
- some-other-host - some-host
hostsProxyHeaders: - some-other-host
- some-header hostsProxyHeaders:
- some-other-header - some-header
sslProxyHeaders: - some-other-header
some-header: some-value sslProxyHeaders:
some-other-header: some-other-value some-header: some-value
stsSeconds: 1000 some-other-header: some-other-value
stsIncludeSubdomains: true stsSeconds: 1000
stsPreload: true stsIncludeSubdomains: true
forceSTSHeader: true stsPreload: true
frameDeny: true forceSTSHeader: true
customFrameOptionsValue: some-value frameDeny: true
contentTypeNosniff: true customFrameOptionsValue: some-value
browserXssFilter: true contentTypeNosniff: true
customBrowserXSSValue: some-value browserXssFilter: true
contentSecurityPolicy: some-value customBrowserXSSValue: some-value
contentSecurityPolicyReportOnly: true contentSecurityPolicy: some-value
publicKey: some-public-key contentSecurityPolicyReportOnly: true
referrerPolicy: some-referrer-policy publicKey: some-public-key
permissionsPolicy: some-permissions-policy referrerPolicy: some-referrer-policy
isDevelopment: true permissionsPolicy: some-permissions-policy
isDevelopment: true
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -7,17 +7,18 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: ip-allow-list enabled: true
data: type: ip-allow-list
sourceRange: data:
- some-source-range sourceRange:
ipStrategy: - some-source-range
depth: 1 ipStrategy:
excludedIPs: depth: 1
- some-excluded-ip excludedIPs:
- some-excluded-ip
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -36,27 +37,29 @@ tests:
- it: should fail with invalid sourceRange - it: should fail with invalid sourceRange
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: ip-allow-list enabled: true
data: type: ip-allow-list
sourceRange: some-source-range data:
sourceRange: some-source-range
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (ip-allow-list) - Expected [sourceRange] to be a list, but got [string] errorMessage: Middleware (ip-allow-list) - Expected [sourceRange] to be a list, but got [string]
- it: should fail with invalid ipStrategy.excludedIPs - it: should fail with invalid ipStrategy.excludedIPs
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: ip-allow-list enabled: true
data: type: ip-allow-list
sourceRange: data:
- some-source-range sourceRange:
ipStrategy: - some-source-range
excludedIPs: some-excluded-ip ipStrategy:
excludedIPs: some-excluded-ip
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (ip-allow-list) - Expected [ipStrategy.excludedIPs] to be a list, but got [string] errorMessage: Middleware (ip-allow-list) - Expected [ipStrategy.excludedIPs] to be a list, but got [string]
@@ -7,68 +7,69 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-bouncer
data:
enabled: true enabled: true
logLevel: DEBUG type: plugin-bouncer
updateIntervalSeconds: 60 data:
updateMaxFailure: 0 enabled: true
defaultDecisionSeconds: 60 logLevel: DEBUG
httpTimeoutSeconds: 10 updateIntervalSeconds: 60
crowdsecMode: live updateMaxFailure: 0
crowdsecAppsecEnabled: false defaultDecisionSeconds: 60
crowdsecAppsecHost: crowdsec:7422 httpTimeoutSeconds: 10
crowdsecAppsecFailureBlock: true crowdsecMode: live
crowdsecAppsecUnreachableBlock: true crowdsecAppsecEnabled: false
crowdsecLapiKey: privateKey-foo crowdsecAppsecHost: crowdsec:7422
crowdsecLapiHost: crowdsec:8080 crowdsecAppsecFailureBlock: true
crowdsecLapiScheme: http crowdsecAppsecUnreachableBlock: true
crowdsecLapiTLSInsecureVerify: false crowdsecLapiKey: privateKey-foo
crowdsecCapiMachineId: login crowdsecLapiHost: crowdsec:8080
crowdsecCapiPassword: password crowdsecLapiScheme: http
crowdsecCapiScenarios: crowdsecLapiTLSInsecureVerify: false
- crowdsecurity/http-path-traversal-probing crowdsecCapiMachineId: login
- crowdsecurity/http-xss-probing crowdsecCapiPassword: password
- crowdsecurity/http-generic-bf crowdsecCapiScenarios:
forwardedHeadersTrustedIPs: - crowdsecurity/http-path-traversal-probing
- 10.0.10.23/32 - crowdsecurity/http-xss-probing
- 10.0.20.0/24 - crowdsecurity/http-generic-bf
clientTrustedIPs: forwardedHeadersTrustedIPs:
- 192.168.1.0/24 - 10.0.10.23/32
forwardedHeadersCustomName: X-Custom-Header - 10.0.20.0/24
remediationHeadersCustomName: cs-remediation clientTrustedIPs:
redisCacheEnabled: false - 192.168.1.0/24
redisCacheHost: "redis:6379" forwardedHeadersCustomName: X-Custom-Header
redisCachePassword: password remediationHeadersCustomName: cs-remediation
redisCacheDatabase: "5" redisCacheEnabled: false
crowdsecLapiTLSCertificateAuthority: |- redisCacheHost: "redis:6379"
-----BEGIN TOTALY NOT A CERT----- redisCachePassword: password
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT redisCacheDatabase: "5"
... crowdsecLapiTLSCertificateAuthority: |-
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT -----BEGIN TOTALY NOT A CERT-----
-----END TOTALY NOT A CERT----- MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
crowdsecLapiTLSCertificateBouncer: |- ...
-----BEGIN TOTALY NOT A CERT----- Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL -----END TOTALY NOT A CERT-----
... crowdsecLapiTLSCertificateBouncer: |-
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz -----BEGIN TOTALY NOT A CERT-----
N2U= MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
-----END TOTALY NOT A CERT----- ...
crowdsecLapiTLSCertificateBouncerKey: |- RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
-----BEGIN TOTALY NOT A SECRET----- N2U=
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d -----END TOTALY NOT A CERT-----
... crowdsecLapiTLSCertificateBouncerKey: |-
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA= -----BEGIN TOTALY NOT A SECRET-----
-----END TOTALY NOT A SECRET----- MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
captchaProvider: hcaptcha ...
captchaSiteKey: FIXME ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
captchaSecretKey: FIXME -----END TOTALY NOT A SECRET-----
captchaGracePeriodSeconds: 1800 captchaProvider: hcaptcha
captchaHTMLFilePath: /captcha.html captchaSiteKey: FIXME
banHTMLFilePath: /ban.html captchaSecretKey: FIXME
captchaGracePeriodSeconds: 1800
captchaHTMLFilePath: /captcha.html
banHTMLFilePath: /ban.html
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -136,13 +137,14 @@ tests:
- it: should pass with pluginName set - it: should pass with pluginName set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-bouncer
data:
pluginName: traefik-bouncer-test
enabled: true enabled: true
type: plugin-bouncer
data:
pluginName: traefik-bouncer-test
enabled: true
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -154,24 +156,26 @@ tests:
- it: should fail with missing enabled - it: should fail with missing enabled
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-bouncer enabled: true
data: type: plugin-bouncer
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be set errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be set
- it: should fail with invalid enabled - it: should fail with invalid enabled
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-bouncer enabled: true
data: type: plugin-bouncer
enabled: some-value data:
enabled: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be a boolean, but got [string] errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be a boolean, but got [string]
@@ -7,27 +7,28 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-geoblock enabled: true
data: type: plugin-geoblock
api: https://api.geoblock.org/v2/geoblock data:
allowLocalRequests: true api: https://api.geoblock.org/v2/geoblock
logLocalRequests: true allowLocalRequests: true
logAllowedRequests: true logLocalRequests: true
logApiRequests: true logAllowedRequests: true
apiTimeoutMs: 1000 logApiRequests: true
cacheSize: 1000 apiTimeoutMs: 1000
forceMonthlyUpdate: true cacheSize: 1000
allowUnknownCountries: true forceMonthlyUpdate: true
unknownCountryApiResponse: some-value allowUnknownCountries: true
blackListMode: true unknownCountryApiResponse: some-value
silentStartUp: true blackListMode: true
addCountryHeader: true silentStartUp: true
countries: addCountryHeader: true
- some-country countries:
- some-other-country - some-country
- some-other-country
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -54,16 +55,17 @@ tests:
- it: should pass with pluginName set - it: should pass with pluginName set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-geoblock enabled: true
data: type: plugin-geoblock
pluginName: traefik-geoblock-test data:
api: https://api.geoblock.org/v2/geoblock pluginName: traefik-geoblock-test
countries: api: https://api.geoblock.org/v2/geoblock
- some-country countries:
- some-other-country - some-country
- some-other-country
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -78,24 +80,26 @@ tests:
- it: should fail with missing api - it: should fail with missing api
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-geoblock enabled: true
data: type: plugin-geoblock
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (plugin-geoblock) - Expected [api] to be set errorMessage: Middleware (plugin-geoblock) - Expected [api] to be set
- it: should fail with missing countries - it: should fail with missing countries
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-geoblock enabled: true
data: type: plugin-geoblock
api: https://api.geoblock.org/v2/geoblock data:
api: https://api.geoblock.org/v2/geoblock
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (plugin-geoblock) - Expected [countries] to be set errorMessage: Middleware (plugin-geoblock) - Expected [countries] to be set
@@ -7,14 +7,15 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-mod-security enabled: true
data: type: plugin-mod-security
modSecurityUrl: some-url data:
timeoutMillis: 1000 modSecurityUrl: some-url
maxBodySize: 1024 timeoutMillis: 1000
maxBodySize: 1024
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -28,13 +29,14 @@ tests:
- it: should pass with pluginName set - it: should pass with pluginName set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-mod-security enabled: true
data: type: plugin-mod-security
pluginName: traefik-mod-security-test data:
modSecurityUrl: some-url pluginName: traefik-mod-security-test
modSecurityUrl: some-url
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -46,12 +48,13 @@ tests:
- it: should fail with missing modSecurityUrl - it: should fail with missing modSecurityUrl
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-mod-security enabled: true
data: type: plugin-mod-security
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (modsecurity) - Expected [modSecurityUrl] to be set errorMessage: Middleware (modsecurity) - Expected [modSecurityUrl] to be set
@@ -7,14 +7,15 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-real-ip enabled: true
data: type: plugin-real-ip
excludednets: data:
- some-excluded-net excludednets:
- some-other-excluded-net - some-excluded-net
- some-other-excluded-net
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -28,15 +29,16 @@ tests:
- it: should pass with pluginName set - it: should pass with pluginName set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-real-ip enabled: true
data: type: plugin-real-ip
pluginName: traefik-real-ip-test data:
excludednets: pluginName: traefik-real-ip-test
- some-excluded-net excludednets:
- some-other-excluded-net - some-excluded-net
- some-other-excluded-net
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -50,12 +52,13 @@ tests:
- it: should fail with missing excludednets - it: should fail with missing excludednets
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-real-ip enabled: true
data: type: plugin-real-ip
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (real-ip) - Expected [excludednets] to be set errorMessage: Middleware (real-ip) - Expected [excludednets] to be set
@@ -7,18 +7,19 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
rewrites: data:
- header: some-header rewrites:
regex: some-regex - header: some-header
replacement: some-replacement regex: some-regex
- header: some-other-header replacement: some-replacement
regex: some-other-regex - header: some-other-header
replacement: some-other-replacement regex: some-other-regex
replacement: some-other-replacement
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -36,16 +37,17 @@ tests:
- it: should pass with pluginName set - it: should pass with pluginName set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
pluginName: traefik-rewrite-response-headers-test data:
rewrites: pluginName: traefik-rewrite-response-headers-test
- header: some-header rewrites:
regex: some-regex - header: some-header
replacement: some-replacement regex: some-regex
replacement: some-replacement
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -60,66 +62,71 @@ tests:
- it: should fail with missing header - it: should fail with missing header
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
rewrites: data:
- regex: some-regex rewrites:
replacement: some-replacement - regex: some-regex
replacement: some-replacement
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (rewrite-response-headers) - Expected [header] to be set for rewrite [0] errorMessage: Middleware (rewrite-response-headers) - Expected [header] to be set for rewrite [0]
- it: should fail with missing regex - it: should fail with missing regex
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
rewrites: data:
- header: some-header rewrites:
replacement: some-replacement - header: some-header
replacement: some-replacement
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (rewrite-response-headers) - Expected [regex] to be set for rewrite [0] errorMessage: Middleware (rewrite-response-headers) - Expected [regex] to be set for rewrite [0]
- it: should fail with missing replacement - it: should fail with missing replacement
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
rewrites: data:
- header: some-header rewrites:
regex: some-regex - header: some-header
regex: some-regex
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (rewrite-response-headers) - Expected [replacement] to be set for rewrite [0] errorMessage: Middleware (rewrite-response-headers) - Expected [replacement] to be set for rewrite [0]
- it: should fail with missing rewrites - it: should fail with missing rewrites
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be set errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be set
- it: should fail with invalid rewrites - it: should fail with invalid rewrites
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-rewrite-response-headers enabled: true
data: type: plugin-rewrite-response-headers
rewrites: some-value data:
rewrites: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be a list, but got [string] errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be a list, but got [string]
@@ -7,17 +7,18 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-theme-park enabled: true
data: type: plugin-theme-park
app: sonarr data:
theme: dark app: sonarr
baseUrl: https://example.com theme: dark
addons: baseUrl: https://example.com
- some-addon addons:
- some-other-addon - some-addon
- some-other-addon
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -34,14 +35,15 @@ tests:
- it: should pass with pluginName set - it: should pass with pluginName set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-theme-park enabled: true
data: type: plugin-theme-park
app: sonarr data:
theme: dark app: sonarr
pluginName: traefik-themepark-test theme: dark
pluginName: traefik-themepark-test
asserts: asserts:
- documentIndex: *middlewareDoc - documentIndex: *middlewareDoc
equal: equal:
@@ -54,24 +56,26 @@ tests:
- it: should fail with missing app - it: should fail with missing app
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-theme-park enabled: true
data: type: plugin-theme-park
theme: dark data:
theme: dark
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (themepark) - Expected [app] to be set errorMessage: Middleware (themepark) - Expected [app] to be set
- it: should fail with missing theme - it: should fail with missing theme
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: plugin-theme-park enabled: true
data: type: plugin-theme-park
app: sonarr data:
app: sonarr
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (themepark) - Expected [theme] to be set errorMessage: Middleware (themepark) - Expected [theme] to be set
@@ -7,13 +7,14 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: rate-limit enabled: true
data: type: rate-limit
average: 1000 data:
burst: 2000 average: 1000
burst: 2000
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
equal: equal:
@@ -24,12 +25,13 @@ tests:
burst: 2000 burst: 2000
- it: should fail with missing average and burst - it: should fail with missing average and burst
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: rate-limit enabled: true
data: type: rate-limit
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (rate-limit) - Expected either [average] or [burst] to be set errorMessage: Middleware (rate-limit) - Expected either [average] or [burst] to be set
@@ -7,14 +7,15 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-regex enabled: true
data: type: redirect-regex
regex: some-regex data:
replacement: some-replacement regex: some-regex
permanent: true replacement: some-replacement
permanent: true
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -30,40 +31,43 @@ tests:
- it: should fail with missing regex - it: should fail with missing regex
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-regex enabled: true
data: type: redirect-regex
replacement: some-replacement data:
permanent: true replacement: some-replacement
permanent: true
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (redirect-regex) - Expected [regex] to be set errorMessage: Middleware (redirect-regex) - Expected [regex] to be set
- it: should fail with missing replacement - it: should fail with missing replacement
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-regex enabled: true
data: type: redirect-regex
regex: some-regex data:
permanent: true regex: some-regex
permanent: true
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (redirect-regex) - Expected [replacement] to be set errorMessage: Middleware (redirect-regex) - Expected [replacement] to be set
- it: should fail with invalid permanent - it: should fail with invalid permanent
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-regex enabled: true
data: type: redirect-regex
regex: some-regex data:
replacement: some-replacement regex: some-regex
permanent: some-value replacement: some-replacement
permanent: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (redirect-regex) - Expected [permanent] to be a boolean, but got [string] errorMessage: Middleware (redirect-regex) - Expected [permanent] to be a boolean, but got [string]
@@ -7,13 +7,14 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-scheme enabled: true
data: type: redirect-scheme
scheme: https data:
permanent: true scheme: https
permanent: true
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -28,25 +29,27 @@ tests:
- it: should fail with missing scheme - it: should fail with missing scheme
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-scheme enabled: true
data: type: redirect-scheme
permanent: true data:
permanent: true
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (redirect-scheme) - Expected [scheme] to be set errorMessage: Middleware (redirect-scheme) - Expected [scheme] to be set
- it: should fail with invalid permanent - it: should fail with invalid permanent
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: redirect-scheme enabled: true
data: type: redirect-scheme
scheme: https data:
permanent: some-value scheme: https
permanent: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (redirect-scheme) - Expected [permanent] to be a boolean, but got [string] errorMessage: Middleware (redirect-scheme) - Expected [permanent] to be a boolean, but got [string]
@@ -7,13 +7,14 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: replace-path-regex enabled: true
data: type: replace-path-regex
regex: /some-path data:
replacement: /some-replacement regex: /some-path
replacement: /some-replacement
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -28,24 +29,26 @@ tests:
- it: should fail with missing regex - it: should fail with missing regex
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: replace-path-regex enabled: true
data: type: replace-path-regex
replacement: /some-replacement data:
replacement: /some-replacement
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (replace-path-regex) - Expected [regex] to be set errorMessage: Middleware (replace-path-regex) - Expected [regex] to be set
- it: should fail with missing replacement - it: should fail with missing replacement
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: replace-path-regex enabled: true
data: type: replace-path-regex
regex: /some-path data:
regex: /some-path
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (replace-path-regex) - Expected [replacement] to be set errorMessage: Middleware (replace-path-regex) - Expected [replacement] to be set
@@ -7,12 +7,13 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: replace-path enabled: true
data: type: replace-path
path: /some-path data:
path: /some-path
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -26,12 +27,13 @@ tests:
- it: should fail with missing path - it: should fail with missing path
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: replace-path enabled: true
data: type: replace-path
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (replace-path) - Expected [path] to be set errorMessage: Middleware (replace-path) - Expected [path] to be set
@@ -7,13 +7,14 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: retry enabled: true
data: type: retry
attempts: 3 data:
initialInterval: 1000 attempts: 3
initialInterval: 1000
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -28,12 +29,13 @@ tests:
- it: should fail with missing attempts - it: should fail with missing attempts
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: retry enabled: true
data: type: retry
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (retry) - Expected [attempts] to be set errorMessage: Middleware (retry) - Expected [attempts] to be set
@@ -7,15 +7,16 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: strip-prefix enabled: true
data: type: strip-prefix
forceSlash: true data:
prefix: forceSlash: true
- /some-prefix prefix:
- /some-other-prefix - /some-prefix
- /some-other-prefix
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -32,26 +33,28 @@ tests:
- it: should fail with missing prefix - it: should fail with missing prefix
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: strip-prefix enabled: true
data: type: strip-prefix
prefix: [] data:
prefix: []
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (strip-prefix) - Expected [prefix] to be set errorMessage: Middleware (strip-prefix) - Expected [prefix] to be set
- it: should fail with invalid forceSlash - it: should fail with invalid forceSlash
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: strip-prefix enabled: true
data: type: strip-prefix
prefix: data:
- /some-prefix prefix:
forceSlash: some-value - /some-prefix
forceSlash: some-value
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (strip-prefix) - Expected [forceSlash] to be a boolean, but got [string] errorMessage: Middleware (strip-prefix) - Expected [forceSlash] to be a boolean, but got [string]
@@ -7,14 +7,15 @@ release:
tests: tests:
- it: should pass with all set - it: should pass with all set
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: strip-prefix-regex enabled: true
data: type: strip-prefix-regex
regex: data:
- some-regex regex:
- some-other-regex - some-regex
- some-other-regex
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -30,12 +31,13 @@ tests:
- it: should fail with missing regex - it: should fail with missing regex
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: strip-prefix-regex enabled: true
data: type: strip-prefix-regex
regex: [] data:
regex: []
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware (strip-prefix-regex) - Expected [regex] to be set errorMessage: Middleware (strip-prefix-regex) - Expected [regex] to be set
@@ -7,23 +7,24 @@ release:
tests: tests:
- it: should generate correct name - it: should generate correct name
set: set:
middlewares: ingressMiddlewares:
my-middleware1: traefik:
enabled: true my-middleware1:
type: buffering enabled: true
data: type: buffering
foo: bar data:
my-middleware2: foo: bar
enabled: true my-middleware2:
type: buffering enabled: true
data: type: buffering
foo: bar data:
my-middleware3: foo: bar
enabled: true my-middleware3:
type: buffering enabled: true
expandObjectName: false type: buffering
data: expandObjectName: false
foo: bar data:
foo: bar
asserts: asserts:
- documentIndex: &middlewareDoc 0 - documentIndex: &middlewareDoc 0
isKind: isKind:
@@ -7,97 +7,105 @@ release:
tests: tests:
- it: should fail with name longer than 253 characters - it: should fail with name longer than 253 characters
set: set:
middlewares: ingressMiddlewares:
? my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name traefik:
: enabled: true my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name:
type: buffering enabled: true
data: type: buffering
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Name [test-release-name-common-test-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters. errorMessage: Name [test-release-name-common-test-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
- it: should fail with name starting with underscore - it: should fail with name starting with underscore
set: set:
middlewares: ingressMiddlewares:
_my-middleware: traefik:
enabled: true _my-middleware:
type: buffering enabled: true
data: type: buffering
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Name [test-release-name-common-test-_my-middleware] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters. errorMessage: Name [test-release-name-common-test-_my-middleware] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
- it: should fail with namespace longer than 63 characters - it: should fail with namespace longer than 63 characters
set: set:
middlewares: ingressMiddlewares:
my-middleware: traefik:
enabled: true my-middleware:
type: buffering enabled: true
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters type: buffering
data: namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters. errorMessage: Middleware - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters.
- it: should fail with labels not a dict - it: should fail with labels not a dict
set: set:
middlewares: ingressMiddlewares:
my-middleware: traefik:
enabled: true my-middleware:
type: buffering enabled: true
labels: "not a dict" type: buffering
data: labels: "not a dict"
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware - Expected [labels] to be a dictionary, but got [string] errorMessage: Middleware - Expected [labels] to be a dictionary, but got [string]
- it: should fail with annotations not a dict - it: should fail with annotations not a dict
set: set:
middlewares: ingressMiddlewares:
my-middleware: traefik:
enabled: true my-middleware:
type: buffering enabled: true
annotations: "not a dict" type: buffering
data: annotations: "not a dict"
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware - Expected [annotations] to be a dictionary, but got [string] errorMessage: Middleware - Expected [annotations] to be a dictionary, but got [string]
- it: should fail with data not a dict - it: should fail with data not a dict
set: set:
middlewares: ingressMiddlewares:
my-middleware: traefik:
enabled: true my-middleware:
type: buffering enabled: true
data: "not a dict" type: buffering
data: "not a dict"
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware - Expected [data] to be a dictionary, but got [string] errorMessage: Middleware - Expected [data] to be a dictionary, but got [string]
- it: should fail with empty enabled - it: should fail with empty enabled
set: set:
middlewares: ingressMiddlewares:
my-middleware: traefik:
enabled: my-middleware:
data: enabled:
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware - Expected the defined key [enabled] in [middlewares.my-middleware] to not be empty errorMessage: Middleware - Expected the defined key [enabled] in [middlewares.my-middleware] to not be empty
- it: should fail with empty type - it: should fail with empty type
set: set:
middlewares: ingressMiddlewares:
my-middleware: traefik:
enabled: true my-middleware:
type: enabled: true
data: type:
foo: bar data:
foo: bar
asserts: asserts:
- failedTemplate: - failedTemplate:
errorMessage: Middleware - Expected [type] to be set errorMessage: Middleware - Expected [type] to be set
+1 -1
View File
@@ -48,4 +48,4 @@ sources:
- https://hub.docker.com/_/ - https://hub.docker.com/_/
- https://hub.docker.com/r/mikefarah/yq - https://hub.docker.com/r/mikefarah/yq
type: library type: library
version: 25.4.15 version: 25.5.0
@@ -5,8 +5,14 @@
{{- define "tc.v1.common.spawner.traefik.middleware" -}} {{- define "tc.v1.common.spawner.traefik.middleware" -}}
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}} {{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}}
{{- if not .Values.ingressMiddlewares -}}
{{- $_ := set $.Values "ingressMiddlewares" dict -}}
{{- end -}}
{{- if not .Values.ingressMiddlewares.traefik -}}
{{- $_ := set $.Values.ingressMiddlewares "traefik" dict -}}
{{- end -}}
{{- range $name, $middleware := .Values.middlewares -}} {{- range $name, $middleware := $.Values.ingressMiddlewares.traefik -}}
{{- $enabled := (include "tc.v1.common.lib.util.enabled" (dict {{- $enabled := (include "tc.v1.common.lib.util.enabled" (dict
"rootCtx" $ "objectData" $middleware "rootCtx" $ "objectData" $middleware
+33 -13
View File
@@ -235,19 +235,39 @@ credentials:
# ## Is used in cases where things are encrypted by a backup utility # ## Is used in cases where things are encrypted by a backup utility
# encrKey: "" # encrKey: ""
middlewares: {} ingressMiddlewares:
# basic-auth: traefik:
# type: basicAuth tc-basic-secure-headers:
# data: enabled: false
# # middleware specific data ie type: headers
# users: data:
# - username: user1 accessControlAllowMethods:
# password: password1 - GET
# some-other-middleware: - OPTIONS
# type: someOtherMiddleware - HEAD
# data: - PUT
# # middleware specific data ie accessControlMaxAge: 100
# someOtherMiddlewareData: someOtherMiddlewareData stsSeconds: 63072000
forceSTSHeader: true
contentTypeNosniff: true
browserXssFilter: true
referrerPolicy: same-origin
customRequestHeaders:
X-Forwarded-Proto: "https"
# basic-auth:
# enabled: true
# type: basicAuth
# data:
# # middleware specific data ie
# users:
# - username: user1
# password: password1
# some-other-middleware:
# enabled: true
# type: someOtherMiddleware
# data:
# # middleware specific data ie
# someOtherMiddlewareData: someOtherMiddlewareData
# -- (docs/persistence/README.md) # -- (docs/persistence/README.md)
persistence: persistence:
@@ -1,58 +0,0 @@
---
title: Add Prefix Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/add-prefix#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/addprefix)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: add-prefix`.
:::
---
## `prefix`
Define the prefix
| | |
| ---------- | ------------------------------- |
| Key | `middlewares.$name.data.prefix` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
prefix: some-prefix
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: add-prefix
data:
prefix: some-prefix
```
@@ -1,152 +0,0 @@
---
title: Basic Auth Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/basic-auth#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/basicauth)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: basic-auth`.
:::
---
## `users`
Define the users
:::note
If this is set, the `secret` key must not be set.
:::
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.users` |
| Type | `list` of `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
users:
- username: some-username
password: some-password
```
---
### `users[].username`
Define the username
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.users.username` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
users:
- username: some-username
password: some-password
```
---
### `users[].password`
Define the password
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.users.password` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
users:
- username: some-username
password: some-password
```
---
## `secret`
Define the secret
:::note
If this is set, the `users` key must not be set.
:::
| | |
| ---------- | ------------------------------- |
| Key | `middlewares.$name.data.secret` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
secret: some-secret
```
---
## Full Examples
```yaml
middlewares:
middleware-name1:
enabled: true
type: basic-auth
data:
users:
- username: some-username
password: some-password
middleware-name2:
enabled: true
type: basic-auth
data:
secret: some-secret
```
@@ -1,146 +0,0 @@
---
title: Buffering Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/buffering#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/buffering)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: buffering`.
:::
---
## `maxRequestBodyBytes`
Define the maxRequestBodyBytes
| | |
| ---------- | -------------------------------------------- |
| Key | `middlewares.$name.data.maxRequestBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
maxRequestBodyBytes: 1024
```
---
## `memRequestBodyBytes`
Define the memRequestBodyBytes
| | |
| ---------- | -------------------------------------------- |
| Key | `middlewares.$name.data.memRequestBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
middlewares:
middleware-name:
data:
memRequestBodyBytes: 1024
```
---
## `maxResponseBodyBytes`
Define the maxResponseBodyBytes
| | |
| ---------- | --------------------------------------------- |
| Key | `middlewares.$name.data.maxResponseBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
middlewares:
middleware-name:
data:
maxResponseBodyBytes: 1024
```
---
## `memResponseBodyBytes`
Define the memResponseBodyBytes
| | |
| ---------- | --------------------------------------------- |
| Key | `middlewares.$name.data.memResponseBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
middlewares:
middleware-name:
data:
memResponseBodyBytes: 1024
```
---
## `retryExpression`
Define the retryExpression
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.retryExpression` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
middlewares:
middleware-name:
data:
retryExpression: "some-expression"
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: buffering
data:
maxRequestBodyBytes: 1024
memRequestBodyBytes: 1024
maxResponseBodyBytes: 1024
memResponseBodyBytes: 1024
retryExpression: "some-expression"
```
@@ -1,105 +0,0 @@
---
title: Chain Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/chain#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/chain)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: chain`.
:::
---
## `middlewares`
Define the middlewares
| | |
| ---------- | ------------------------------------ |
| Key | `middlewares.$name.data.middlewares` |
| Type | `list` of `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
middlewares: []
```
---
### `middlewares[].name`
Define the middleware name
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.middlewares.name` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
middlewares:
- name: some-name
```
---
### `middlewares[].expandObjectName`
Define the middleware expandObjectName
| | |
| ---------- | ----------------------------------------------------- |
| Key | `middlewares.$name.data.middlewares.expandObjectName` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `true` |
Example
```yaml
middlewares:
middleware-name:
data:
middlewares:
- name: some-name
expandObjectName: false
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: compress
```
@@ -1,207 +0,0 @@
---
title: Forward Auth Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/forward-auth#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/forwardauth)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: forward-auth`.
:::
---
## `address`
Define the address
| | |
| ---------- | -------------------------------- |
| Key | `middlewares.$name.data.address` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
address: some-address
```
---
## `authResponseHeadersRegex`
Define the authResponseHeadersRegex
| | |
| ---------- | ------------------------------------------------- |
| Key | `middlewares.$name.data.authResponseHeadersRegex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
authResponseHeadersRegex: some-regex
```
---
## `trustForwardHeader`
Define the trustForwardHeader
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.trustForwardHeader` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `false` |
Example
```yaml
middlewares:
middleware-name:
data:
trustForwardHeader: true
```
---
## `authResponseHeaders`
Define the authResponseHeaders
| | |
| ---------- | -------------------------------------------- |
| Key | `middlewares.$name.data.authResponseHeaders` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `[]` |
Example
```yaml
middlewares:
middleware-name:
data:
authResponseHeaders:
- some-header
```
---
## `authRequestHeaders`
Define the authRequestHeaders
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.authRequestHeaders` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `[]` |
Example
```yaml
middlewares:
middleware-name:
data:
authRequestHeaders:
- some-header
```
---
## `tls`
Define the tls
| | |
| ---------- | ---------------------------- |
| Key | `middlewares.$name.data.tls` |
| Type | `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
middlewares:
middleware-name:
data:
tls: {}
```
---
### `tls.insecureSkipVerify`
Define the tls.insecureSkipVerify
| | |
| ---------- | ----------------------------------------------- |
| Key | `middlewares.$name.data.tls.insecureSkipVerify` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `false` |
Example
```yaml
middlewares:
middleware-name:
data:
tls:
insecureSkipVerify: true
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: forward-auth
data:
address: some-address
authResponseHeadersRegex: some-regex
trustForwardHeader: true
authResponseHeaders:
- some-header
authRequestHeaders:
- some-header
tls:
insecureSkipVerify: true
```
@@ -1,748 +0,0 @@
---
title: Headers Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/headers#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/headers)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: headers`.
:::
---
## `customRequestHeaders`
Define the customRequestHeaders
| | |
| ---------- | --------------------------------------------- |
| Key | `middlewares.$name.data.customRequestHeaders` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
customRequestHeaders:
some-name: some-value
some-other-name: some-other-value
```
---
## `customResponseHeaders`
Define the customResponseHeaders
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.customResponseHeaders` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
customResponseHeaders:
some-name: some-value
some-other-name: some-other-value
```
---
## `accessControlAllowCredentials`
Define the accessControlAllowCredentials
| | |
| ---------- | ------------------------------------------------------ |
| Key | `middlewares.$name.data.accessControlAllowCredentials` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlAllowCredentials: true
```
---
## `accessControlAllowHeaders`
Define the accessControlAllowHeaders
| | |
| ---------- | -------------------------------------------------- |
| Key | `middlewares.$name.data.accessControlAllowHeaders` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlAllowHeaders:
- some-header
- some-other-header
```
---
## `accessControlAllowMethods`
Define the accessControlAllowMethods
| | |
| ---------- | -------------------------------------------------- |
| Key | `middlewares.$name.data.accessControlAllowMethods` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlAllowMethods:
- GET
- POST
- PUT
- DELETE
```
---
## `accessControlAllowOriginList`
Define the accessControlAllowOriginList
| | |
| ---------- | ----------------------------------------------------- |
| Key | `middlewares.$name.data.accessControlAllowOriginList` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlAllowOriginList:
- some-origin
- some-other-origin
```
---
## `accessControlAllowOriginListRegex`
Define the accessControlAllowOriginListRegex
| | |
| ---------- | ----------------------------------------------------- |
| Key | `middlewares.$name.data.accessControlAllowOriginList` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlAllowOriginListRegex:
- some-origin-regex
- some-other-origin-regex
```
---
## `accessControlExposeHeaders`
Define the accessControlExposeHeaders
| | |
| ---------- | --------------------------------------------------- |
| Key | `middlewares.$name.data.accessControlExposeHeaders` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlExposeHeaders:
- some-header
- some-other-header
```
---
## `accessControlMaxAge`
Define the accessControlMaxAge
| | |
| ---------- | -------------------------------------------- |
| Key | `middlewares.$name.data.accessControlMaxAge` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
accessControlMaxAge: 1000
```
---
## `addVaryHeader`
Define the addVaryHeader
| | |
| ---------- | -------------------------------------- |
| Key | `middlewares.$name.data.addVaryHeader` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
addVaryHeader: true
```
---
## `allowedHosts`
Define the allowedHosts
| | |
| ---------- | ------------------------------------- |
| Key | `middlewares.$name.data.allowedHosts` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
allowedHosts:
- some-host
- some-other-host
```
---
## `hostsProxyHeaders`
Define the hostsProxyHeaders
| | |
| ---------- | ------------------------------------------ |
| Key | `middlewares.$name.data.hostsProxyHeaders` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
hostsProxyHeaders:
- some-header
- some-other-header
```
---
## `sslProxyHeaders`
Define the sslProxyHeaders
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.sslProxyHeaders` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
sslProxyHeaders:
some-header: some-value
some-other-header: some-other-value
```
---
## `stsSeconds`
Define the stsSeconds
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.stsSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
stsSeconds: 1000
```
---
## `stsIncludeSubdomains`
Define the stsIncludeSubdomains
| | |
| ---------- | --------------------------------------------- |
| Key | `middlewares.$name.data.stsIncludeSubdomains` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
stsIncludeSubdomains: true
```
---
## `stsPreload`
Define the stsPreload
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.stsPreload` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
stsPreload: true
```
---
## `forceSTSHeader`
Define the forceSTSHeader
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.forceSTSHeader` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
forceSTSHeader: true
```
---
## `frameDeny`
Define the frameDeny
| | |
| ---------- | ---------------------------------- |
| Key | `middlewares.$name.data.frameDeny` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
frameDeny: true
```
---
## `customFrameOptionsValue`
Define the customFrameOptionsValue
| | |
| ---------- | ------------------------------------------------ |
| Key | `middlewares.$name.data.customFrameOptionsValue` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
customFrameOptionsValue: some-value
```
---
## `contentTypeNosniff`
Define the contentTypeNosniff
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.contentTypeNosniff` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
contentTypeNosniff: true
```
---
## `browserXssFilter`
Define the browserXssFilter
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.browserXssFilter` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
browserXssFilter: true
```
---
## `customBrowserXSSValue`
Define the customBrowserXSSValue
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.customBrowserXSSValue` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
customBrowserXSSValue: some-value
```
---
## `contentSecurityPolicy`
Define the contentSecurityPolicy
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.contentSecurityPolicy` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
contentSecurityPolicy: some-value
```
---
## `contentSecurityPolicyReportOnly`
Define the contentSecurityPolicyReportOnly
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.contentSecurityPolicy` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
contentSecurityPolicyReportOnly: true
```
---
## `publicKey`
Define the publicKey
| | |
| ---------- | ---------------------------------- |
| Key | `middlewares.$name.data.publicKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
publicKey: some-public-key
```
---
## `referrerPolicy`
Define the referrerPolicy
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.referrerPolicy` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
referrerPolicy: some-referrer-policy
```
---
## `permissionsPolicy`
Define the permissionsPolicy
| | |
| ---------- | ------------------------------------------ |
| Key | `middlewares.$name.data.permissionsPolicy` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
permissionsPolicy: some-permissions-policy
```
---
## `isDevelopment`
Define the isDevelopment
| | |
| ---------- | -------------------------------------- |
| Key | `middlewares.$name.data.isDevelopment` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
isDevelopment: true
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: headers
data:
customRequestHeaders:
some-name: some-value
some-other-name: some-other-value
customResponseHeaders:
some-name: some-value
some-other-name: some-other-value
accessControlAllowCredentials: true
accessControlAllowHeaders:
- some-header
- some-other-header
accessControlAllowMethods:
- GET
- DELETE
accessControlAllowOriginList:
- some-origin
- some-other-origin
accessControlAllowOriginListRegex:
- some-origin-regex
- some-other-origin-regex
accessControlExposeHeaders:
- some-header
- some-other-header
accessControlMaxAge: 1000
addVaryHeader: true
allowedHosts:
- some-host
- some-other-host
hostsProxyHeaders:
- some-header
- some-other-header
sslProxyHeaders:
some-header: some-value
some-other-header: some-other-value
stsSeconds: 1000
stsIncludeSubdomains: true
stsPreload: true
forceSTSHeader: true
frameDeny: true
customFrameOptionsValue: some-value
contentTypeNosniff: true
browserXssFilter: true
customBrowserXSSValue: some-value
contentSecurityPolicy: some-value
contentSecurityPolicyReportOnly: true
publicKey: some-public-key
referrerPolicy: some-referrer-policy
permissionsPolicy: some-permissions-policy
isDevelopment: true
```
@@ -1,5 +1,5 @@
--- ---
title: Middlewares title: Ingress Middlewares
--- ---
:::note :::note
@@ -11,7 +11,7 @@ title: Middlewares
## Appears in ## Appears in
- `.Values.middlewares` - `.Values.ingressMiddlewares`
## Naming scheme ## Naming scheme
@@ -25,224 +25,240 @@ title: Middlewares
--- ---
## `middlewares` ## `ingressMiddlewares`
Create Middleware objects Create Middleware objects
| | | | | |
| ---------- | ------------- | | ---------- | -------------------- |
| Key | `middlewares` | | Key | `ingressMiddlewares` |
| Type | `map` | | Type | `map` |
| Required | ❌ | | Required | ❌ |
| Helm `tpl` | ❌ | | Helm `tpl` | ❌ |
| Default | `{}` | | Default | `{}` |
Example Example
```yaml ```yaml
middlewares: {} ingressMiddlewares: {}
``` ```
--- ---
### `$name` ### `$provider`
Define Middleware Define Middleware
| | | :::note
| ---------- | ------------------- |
| Key | `middlewares.$name` | - Available providers are:
| Type | `map` | - [traefik](/common/middlewares/traefik)
| Required | ✅ |
| Helm `tpl` | ❌ | :::
| Default | `{}` |
| | |
| ---------- | ------------------------------ |
| Key | `ingressMiddlewares.$provider` |
| Type | `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example Example
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: {} traefik: {}
``` ```
--- ---
#### `enabled` #### `$name`
Enables or Disables the Configmap Define Middleware
| | | | | |
| ---------- | ------------------------- | | ---------- | ------------------------------------ |
| Key | `configmap.$name.enabled` | | Key | `ingressMiddlewares.$provider.$name` |
| Type | `bool` | | Type | `map` |
| Required | ✅ | | Required | ✅ |
| Helm `tpl` | | | Helm `tpl` | |
| Default | `false` | | Default | `{}` |
Example Example
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
enabled: true middleware-name: {}
``` ```
--- ---
#### `expandObjectName` ##### `enabled`
Enables or Disables the Middleware
| | |
| ---------- | -------------------------------------------- |
| Key | `ingressMiddlewares.$provider.$name.enabled` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ✅ |
| Default | `false` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
```
---
##### `expandObjectName`
Whether to expand (adding the fullname as prefix) the middleware name. Whether to expand (adding the fullname as prefix) the middleware name.
| | | | | |
| ---------- | ---------------------------------- | | ---------- | ---------------------------------------------------- |
| Key | `configmap.$name.expandObjectName` | | Key | `ingressMiddleware.$provider.$name.expandObjectName` |
| Type | `bool` | | Type | `bool` |
| Required | ✅ | | Required | ✅ |
| Helm `tpl` | ✅ | | Helm `tpl` | ✅ |
| Default | `true` | | Default | `true` |
Example Example
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
expandObjectName: false middleware-name:
expandObjectName: false
``` ```
--- ---
#### `namespace` ##### `namespace`
Define the namespace for this object Define the namespace for this object
| | | | | |
| ---------- | ----------------------------- | | ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.namespace` | | Key | `ingressMiddlewares.$provider.$name.namespace` |
| Type | `string` | | Type | `string` |
| Required | ❌ | | Required | ❌ |
| Helm `tpl` | ✅ | | Helm `tpl` | ✅ |
| Default | `""` | | Default | `""` |
Example Example
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
namespace: some-namespace middleware-name:
namespace: some-namespace
``` ```
--- ---
#### `type` ##### `labels`
Define the type for this object
Available types:
- [add-prefix](/common/middlewares/add-prefix)
- [basic-auth](/common/middlewares/basic-auth)
- [buffering](/common/middlewares/buffering)
- [chain](/common/middlewares/chain)
- [compress](/common/middlewares/compress)
- [content-type](/common/middlewares/content-type)
- [forward-auth](/common/middlewares/forward-auth)
- [headers](/common/middlewares/headers)
- [ip-allow-list](/common/middlewares/ip-allow-list)
- [plugin-bouncer](/common/middlewares/plugin-bouncer)
- [plugin-geoblock](/common/middlewares/plugin-geoblock)
- [plugin-mod-security](/common/middlewares/plugin-mod-security)
- [plugin-real-ip](/common/middlewares/plugin-real-ip)
- [plugin-rewrite-response-headers](/common/middlewares/plugin-rewrite-response-headers)
- [plugin-theme-park](/common/middlewares/plugin-theme-park)
- [rate-limit](/common/middlewares/rate-limit)
- [redirect-regex](/common/middlewares/redirect-regex)
- [redirect-scheme](/common/middlewares/redirect-scheme)
- [replace-path-regex](/common/middlewares/replace-path-regex)
- [replace-path](/common/middlewares/replace-path)
- [retry](/common/middlewares/retry)
- [strip-prefix-regex](/common/middlewares/strip-prefix-regex)
- [strip-prefix](/common/middlewares/strip-prefix)
| | |
| ---------- | ------------------------ |
| Key | `middlewares.$name.type` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `""` |
Example
```yaml
middlewares:
middleware-name:
type: buffering
```
---
#### `labels`
Additional labels for middleware Additional labels for middleware
| | | | | |
| ---------- | -------------------------- | | ---------- | ------------------------------------------- |
| Key | `middlewares.$name.labels` | | Key | `ingressMiddlewares.$provider.$name.labels` |
| Type | `map` | | Type | `map` |
| Required | ❌ | | Required | ❌ |
| Helm `tpl` | ✅ (On value only) | | Helm `tpl` | ✅ (On value only) |
| Default | `{}` | | Default | `{}` |
Example Example
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
labels: middleware-name:
key: value labels:
key: value
``` ```
--- ---
#### `annotations` ##### `annotations`
Additional annotations for middleware Additional annotations for middleware
| | | | | |
| ---------- | ------------------------------- | | ---------- | ------------------------------------------------ |
| Key | `middlewares.$name.annotations` | | Key | `ingressMiddlewares.$provider.$name.annotations` |
| Type | `map` | | Type | `map` |
| Required | ❌ | | Required | ❌ |
| Helm `tpl` | ✅ (On value only) | | Helm `tpl` | ✅ (On value only) |
| Default | `{}` | | Default | `{}` |
Example Example
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
annotations: middleware-name:
key: value annotations:
key: value
``` ```
--- ---
#### `data` ##### `data`
Define the data of the middleware Define the data of the middleware
| | | | | |
| ---------- | ------------------------ | | ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data` | | Key | `ingressMiddlewares.$provider.$name.data` |
| Type | `map` | | Type | `map` |
| Required | ✅ | | Required | ✅ |
| Helm `tpl` | ✅ | | Helm `tpl` | ✅ |
| Example | `{}` | | Example | `{}` |
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
data: middleware-name:
key: value data:
key: value
```
---
##### `type`
Define the type for this object
:::note
See the [provider](/common/middlewares#provider) documentation for more information.
:::
| | |
| ---------- | ----------------------------------------- |
| Key | `ingressMiddlewares.$provider.$name.type` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `""` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
type: buffering
``` ```
--- ---
@@ -250,24 +266,25 @@ middlewares:
## Full Examples ## Full Examples
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
enabled: true middleware-name:
type: buffering enabled: true
expandObjectName: false type: buffering
labels: expandObjectName: false
key: value labels:
keytpl: "{{ .Values.some.value }}" key: value
annotations: keytpl: "{{ .Values.some.value }}"
key: value annotations:
keytpl: "{{ .Values.some.value }}" key: value
data: keytpl: "{{ .Values.some.value }}"
key: value data:
key: value
other-middleware-name: other-middleware-name:
enabled: true enabled: true
type: buffering type: buffering
namespace: some-namespace namespace: some-namespace
data: data:
key: value key: value
``` ```
@@ -1,136 +0,0 @@
---
title: IP Allow List Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/ip-allow-list#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ipallowlist)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: ip-allow-list`.
:::
---
## `sourceRange`
Define the sourceRange
| | |
| ---------- | ------------------------------------ |
| Key | `middlewares.$name.data.sourceRange` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
sourceRange:
- some-source-range
```
---
## `ipStrategy`
Define the ipStrategy
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.ipStrategy` |
| Type | `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
middlewares:
middleware-name:
data:
ipStrategy: {}
```
---
### `ipStrategy.depth`
Define the ipStrategy.depth
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.ipStrategy.depth` |
| Type | `int` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
ipStrategy:
depth: 1
```
---
### `ipStrategy.excludedIPs`
Define the ipStrategy.excludedIPs
| | |
| ---------- | ----------------------------------------------- |
| Key | `middlewares.$name.data.ipStrategy.excludedIPs` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
ipStrategy:
excludedIPs:
- some-excluded-ip
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: ip-allow-list
data:
sourceRange:
- some-source-range
ipStrategy:
depth: 1
excludedIPs:
- some-excluded-ip
```
@@ -1,958 +0,0 @@
---
title: Plugin Bouncer Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/plugin-bouncer#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-bouncer`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `bouncer` |
Example
```yaml
middlewares:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `enabled`
Define the enabled
| | |
| ---------- | -------------------------------- |
| Key | `middlewares.$name.data.enabled` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
enabled: true
```
---
## `logLevel`
Define the logLevel
| | |
| ---------- | --------------------------------- |
| Key | `middlewares.$name.data.logLevel` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
logLevel: DEBUG
```
---
## `updateIntervalSeconds`
Define the updateIntervalSeconds
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.updateIntervalSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
updateIntervalSeconds: 60
```
---
## `updateMaxFailure`
Define the updateMaxFailure
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.updateMaxFailure` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
updateMaxFailure: 0
```
---
## `defaultDecisionSeconds`
Define the defaultDecisionSeconds
| | |
| ---------- | ----------------------------------------------- |
| Key | `middlewares.$name.data.defaultDecisionSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
defaultDecisionSeconds: 60
```
---
## `httpTimeoutSeconds`
Define the httpTimeoutSeconds
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.httpTimeoutSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
httpTimeoutSeconds: 10
```
---
## `crowdsecMode`
Define the crowdsecMode
| | |
| ---------- | --------------------------------- |
| Key | `middlewares.$name.data.crowdsec` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecMode: live
```
---
## `crowdsecAppsecEnabled`
Define the crowdsecAppsecEnabled
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecAppsecEnabled` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecAppsecEnabled: false
```
---
## `crowdsecAppsecHost`
Define the crowdsecAppsecHost
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecAppsecHost` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecAppsecHost: crowdsec:7422
```
---
## `crowdsecAppsecFailureBlock`
Define the crowdsecAppsecFailureBlock
| | |
| ---------- | --------------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecAppsecFailureBlock` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecAppsecFailureBlock: true
```
---
## `crowdsecAppsecUnreachableBlock`
Define the crowdsecAppsecUnreachableBlock
| | |
| ---------- | ------------------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecAppsecUnreachableBlock` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecAppsecUnreachableBlock: true
```
---
## `crowdsecLapiKey`
Define the crowdsecLapiKey
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.crowdsecLapiKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiKey: privateKey-foo
```
---
## `crowdsecLapiHost`
Define the crowdsecLapiHost
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.crowdsecLapiHost` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiHost: crowdsec:8080
```
---
## `crowdsecLapiScheme`
Define the crowdsecLapiScheme
| | |
| ---------- | --------------------------------- |
| Key | `middlewares.$name.data.crowdsec` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiScheme: http
```
---
## `crowdsecLapiTLSInsecureVerify`
Define the crowdsecLapiTLSInsecureVerify
| | |
| ---------- | ------------------------------------------------------ |
| Key | `middlewares.$name.data.crowdsecLapiTLSInsecureVerify` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiTLSInsecureVerify: false
```
---
## `crowdsecCapiMachineId`
Define the crowdsecCapiMachineId
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecCapiMachineId` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecCapiMachineId: login
```
---
## `crowdsecCapiPassword`
Define the crowdsecCapiPassword
| | |
| ---------- | --------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecCapiPassword` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecCapiPassword: password
```
---
## `crowdsecCapiScenarios`
Define the crowdsecCapiScenarios
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecCapiScenarios` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecCapiScenarios:
- crowdsecurity/http-path-traversal-probing
- crowdsecurity/http-xss-probing
- crowdsecurity/http-generic-bf
```
---
## `forwardedHeadersTrustedIPs`
Define the forwardedHeadersTrustedIPs
| | |
| ---------- | --------------------------------------------------- |
| Key | `middlewares.$name.data.forwardedHeadersTrustedIPs` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
forwardedHeadersTrustedIPs:
- 10.0.10.23/32
- 10.0.20.0/24
```
---
## `clientTrustedIPs`
Define the clientTrustedIPs
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.clientTrustedIPs` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
clientTrustedIPs:
- 192.168.1.0/24
```
---
## `forwardedHeadersCustomName`
Define the forwardedHeadersCustomName
| | |
| ---------- | --------------------------------------------------- |
| Key | `middlewares.$name.data.forwardedHeadersCustomName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
forwardedHeadersCustomName: X-Custom-Header
```
---
## `remediationHeadersCustomName`
Define the remediationHeadersCustomName
| | |
| ---------- | ----------------------------------------------------- |
| Key | `middlewares.$name.data.remediationHeadersCustomName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
remediationHeadersCustomName: cs-remediation
```
---
## `redisCacheEnabled`
Define the redisCacheEnabled
| | |
| ---------- | ------------------------------------------ |
| Key | `middlewares.$name.data.redisCacheEnabled` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
redisCacheEnabled: false
```
---
## `redisCacheHost`
Define the redisCacheHost
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.redisCacheHost` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
redisCacheHost: "redis:6379"
```
---
## `redisCachePassword`
Define the redisCachePassword
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.redisCachePassword` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
redisCachePassword: password
```
---
## `redisCacheDatabase`
Define the redisCacheDatabase
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.redisCacheDatabase` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
redisCacheDatabase: "5"
```
---
## `crowdsecLapiTLSCertificateAuthority`
Define the crowdsecLapiTLSCertificateAuthority
| | |
| ---------- | ------------------------------------------------------------ |
| Key | `middlewares.$name.data.crowdsecLapiTLSCertificateAuthority` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiTLSCertificateAuthority: |-
-----BEGIN CERTIFICATE-----
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
...
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
-----END CERTIFICATE-----
```
---
## `crowdsecLapiTLSCertificateBouncer`
Define the crowdsecLapiTLSCertificateBouncer
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecLapiTLSCertificateBouncer` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiTLSCertificateBouncer: |-
-----BEGIN CERTIFICATE-----
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
...
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
N2U=
-----END CERTIFICATE-----
```
---
## `crowdsecLapiTLSCertificateBouncerKey`
Define the crowdsecLapiTLSCertificateBouncerKey
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `middlewares.$name.data.crowdsecLapiTLSCertificateBouncerKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
crowdsecLapiTLSCertificateBouncerKey: |-
-----BEGIN TOTALY NOT A SECRET-----
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
...
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
-----END TOTALY NOT A SECRET-----
```
---
## `captchaProvider`
Define the captchaProvider
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.captchaProvider` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
captchaProvider: hcaptcha
```
---
## `captchaSiteKey`
Define the captchaSiteKey
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.captchaSiteKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
captchaSiteKey: FIXME
```
---
## `captchaSecretKey`
Define the captchaSecretKey
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.captchaSecretKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
captchaSecretKey: FIXME
```
---
## `captchaGracePeriodSeconds`
Define the captchaGracePeriodSeconds
| | |
| ---------- | -------------------------------------------------- |
| Key | `middlewares.$name.data.captchaGracePeriodSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
captchaGracePeriodSeconds: 1800
```
---
## `captchaHTMLFilePath`
Define the captchaHTMLFilePath
| | |
| ---------- | -------------------------------------------- |
| Key | `middlewares.$name.data.captchaHTMLFilePath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
captchaHTMLFilePath: /captcha.html
```
---
## `banHTMLFilePath`
Define the banHTMLFilePath
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.banHTMLFilePath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
banHTMLFilePath: /ban.html
```
---
## `captchaHTMLFilePath`
Define the captchaHTMLFilePath
| | |
| ---------- | -------------------------------------------- |
| Key | `middlewares.$name.data.captchaHTMLFilePath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
captchaHTMLFilePath: /captcha.html
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: plugin-bouncer
data:
enabled: true
logLevel: DEBUG
updateIntervalSeconds: 60
updateMaxFailure: 0
defaultDecisionSeconds: 60
httpTimeoutSeconds: 10
crowdsecMode: live
crowdsecAppsecEnabled: false
crowdsecAppsecHost: crowdsec:7422
crowdsecAppsecFailureBlock: true
crowdsecAppsecUnreachableBlock: true
crowdsecLapiKey: privateKey-foo
crowdsecLapiHost: crowdsec:8080
crowdsecLapiScheme: http
crowdsecLapiTLSInsecureVerify: false
crowdsecCapiMachineId: login
crowdsecCapiPassword: password
crowdsecCapiScenarios:
- crowdsecurity/http-path-traversal-probing
- crowdsecurity/http-xss-probing
- crowdsecurity/http-generic-bf
forwardedHeadersTrustedIPs:
- 10.0.10.23/32
- 10.0.20.0/24
clientTrustedIPs:
- 192.168.1.0/24
forwardedHeadersCustomName: X-Custom-Header
remediationHeadersCustomName: cs-remediation
redisCacheEnabled: false
redisCacheHost: "redis:6379"
redisCachePassword: password
redisCacheDatabase: "5"
crowdsecLapiTLSCertificateAuthority: |-
-----BEGIN TOTALY NOT A CERT-----
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
...
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
-----END TOTALY NOT A CERT-----
crowdsecLapiTLSCertificateBouncer: |-
-----BEGIN TOTALY NOT A CERT-----
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
...
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
N2U=
-----END TOTALY NOT A CERT-----
captchaProvider: hcaptcha
captchaSiteKey: FIXME
captchaSecretKey: FIXME
captchaGracePeriodSeconds: 1800
captchaHTMLFilePath: /captcha.html
banHTMLFilePath: /ban.html
```
@@ -1,397 +0,0 @@
---
title: Plugin Geoblock Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/plugin-geoblock#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/PascalMinder/geoblock)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-geoblock`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `GeoBlock` |
Example
```yaml
middlewares:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `api`
Define the api
| | |
| ---------- | ---------------------------- |
| Key | `middlewares.$name.data.api` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
api: https://api.geoblock.org/v2/geoblock
```
---
## `allowLocalRequests`
Define the allowLocalRequests
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.allowLocalRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
allowLocalRequests: true
```
---
## `logLocalRequests`
Define the logLocalRequests
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.logLocalRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
logLocalRequests: true
```
---
## `logAllowedRequests`
Define the logAllowedRequests
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.logAllowedRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
logAllowedRequests: true
```
---
## `logApiRequests`
Define the logApiRequests
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.logApiRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
logApiRequests: true
```
---
## `apiTimeoutMs`
Define the apiTimeoutMs
| | |
| ---------- | ------------------------------------- |
| Key | `middlewares.$name.data.apiTimeoutMs` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
apiTimeoutMs: 1000
```
---
## `cacheSize`
Define the cacheSize
| | |
| ---------- | ---------------------------------- |
| Key | `middlewares.$name.data.cacheSize` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
cacheSize: 1000
```
---
## `forceMonthlyUpdate`
Define the forceMonthlyUpdate
| | |
| ---------- | ------------------------------------------- |
| Key | `middlewares.$name.data.forceMonthlyUpdate` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
forceMonthlyUpdate: true
```
---
## `allowUnknownCountries`
Define the allowUnknownCountries
| | |
| ---------- | ---------------------------------------------- |
| Key | `middlewares.$name.data.allowUnknownCountries` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
allowUnknownCountries: true
```
---
## `unknownCountryApiResponse`
Define the unknownCountryApiResponse
| | |
| ---------- | -------------------------------------------------- |
| Key | `middlewares.$name.data.unknownCountryApiResponse` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
unknownCountryApiResponse: some-value
```
---
## `blackListMode`
Define the blackListMode
| | |
| ---------- | -------------------------------------- |
| Key | `middlewares.$name.data.blackListMode` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
blackListMode: true
```
---
## `silentStartUp`
Define the silentStartUp
| | |
| ---------- | -------------------------------------- |
| Key | `middlewares.$name.data.silentStartUp` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
silentStartUp: true
```
---
## `addCountryHeader`
Define the addCountryHeader
| | |
| ---------- | ----------------------------------------- |
| Key | `middlewares.$name.data.addCountryHeader` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
addCountryHeader: true
```
---
## `countries`
Define the countries
| | |
| ---------- | ---------------------------------- |
| Key | `middlewares.$name.data.countries` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
countries:
- some-country
- some-other-country
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: plugin-geoblock
data:
api: https://api.geoblock.org/v2/geoblock
allowLocalRequests: true
logLocalRequests: true
logAllowedRequests: true
logApiRequests: true
apiTimeoutMs: 1000
cacheSize: 1000
forceMonthlyUpdate: true
allowUnknownCountries: true
unknownCountryApiResponse: some-value
blackListMode: some-value
silentStartUp: true
addCountryHeader: true
countries:
- some-country
- some-other-country
```
@@ -1,130 +0,0 @@
---
title: Plugin Mod Security Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/plugin-mod-security#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/acouvreur/traefik-modsecurity-plugin)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-mod-security`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `traefik-modsecurity-plugin` |
Example
```yaml
middlewares:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `modSecurityUrl`
Define the modSecurityUrl
| | |
| ---------- | --------------------------------------- |
| Key | `middlewares.$name.data.modSecurityUrl` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
modSecurityUrl: https://example.com
```
---
## `timeoutMillis`
Define the timeoutMillis
| | |
| ---------- | -------------------------------------- |
| Key | `middlewares.$name.data.timeoutMillis` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
timeoutMillis: 1000
```
---
## `maxBodySize`
Define the maxBodySize
| | |
| ---------- | ------------------------------------ |
| Key | `middlewares.$name.data.maxBodySize` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
maxBodySize: 1024
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: plugin-mod-security
data:
pluginName: my-plugin-name
modSecurityUrl: https://example.com
timeoutMillis: 1000
maxBodySize: 1024
```
@@ -1,86 +0,0 @@
---
title: Plugin Real IP Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/plugin-theme-park#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/jramsgz/traefik-real-ip)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-real-ip`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `traefik-real-ip` |
Example
```yaml
middlewares:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `excludednets`
Define the excludednets
| | |
| ---------- | ------------------------------------- |
| Key | `middlewares.$name.data.excludednets` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
excludednets:
- some-excluded-net
- some-other-excluded-net
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: plugin-real-ip
data:
pluginName: my-plugin-name
excludednets:
- some-excluded-net
- some-other-excluded-net
```
@@ -1,163 +0,0 @@
---
title: Plugin Rewrite Response Headers Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/plugin-rewrite-response-headers#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/XciD/traefik-plugin-rewrite-headers/)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-rewrite-response-headers`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `rewriteResponseHeaders` |
Example
```yaml
middlewares:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `rewrites`
Define the rewrites
| | |
| ---------- | --------------------------------- |
| Key | `middlewares.$name.data.rewrites` |
| Type | `list` of `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
rewrites:
- header: some-header
regex: some-regex
replacement: some-replacement
```
---
### `rewrites[].header`
Define the header
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.rewrites.header` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
rewrites:
- header: some-header
```
---
### `rewrites[].regex`
Define the regex
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.regex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
rewrites:
- regex: some-regex
```
---
### `rewrites[].replacement`
Define the replacement
| | |
| ---------- | ------------------------------------ |
| Key | `middlewares.$name.data.replacement` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
rewrites:
- replacement: some-replacement
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: plugin-rewrite-response-headers
data:
pluginName: my-plugin-name
rewrites:
- header: some-header
regex: some-regex
replacement: some-replacement
- header: some-other-header
regex: some-other-regex
replacement: some-other-replacement
```
@@ -1,158 +0,0 @@
---
title: Plugin Theme Park Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/plugin-theme-park#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/packruler/traefik-themepark)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-theme-park`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `traefik-themepark` |
Example
```yaml
middlewares:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `app`
Define the app
| | |
| ---------- | ---------------------------- |
| Key | `middlewares.$name.data.app` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
app: sonarr
```
---
## `theme`
Define the theme
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.theme` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
theme: dark
```
---
## `baseUrl`
Define the baseUrl
| | |
| ---------- | -------------------------------- |
| Key | `middlewares.$name.data.baseUrl` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
baseUrl: https://example.com
```
---
## `addons`
Define the addons
| | |
| ---------- | ------------------------------- |
| Key | `middlewares.$name.data.addons` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
addons:
- some-addon
- some-other-addon
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: plugin-theme-park
data:
pluginName: my-plugin-name
app: sonarr
theme: dark
baseUrl: https://example.com
addons:
- some-addon
- some-other-addon
```
@@ -1,82 +0,0 @@
---
title: Rate Limit Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/rate-limit#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ratelimit)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: rate-limit`.
:::
---
## `average`
Define the average rate limit
| | |
| ---------- | -------------------------------- |
| Key | `middlewares.$name.data.average` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
average: 1000
```
---
## `burst`
Define the burst rate limit
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.burst` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
burst: 1000
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: rate-limit
data:
average: 1000
burst: 1000
```
@@ -1,106 +0,0 @@
---
title: Redirect Regex Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/redirect-regex#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/redirectregex)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: redirect-regex`.
:::
---
## `regex`
Define the regex
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.regex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
regex: some-regex
```
---
## `replacement`
Define the replacement
| | |
| ---------- | ------------------------------------ |
| Key | `middlewares.$name.data.replacement` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
replacement: some-replacement
```
---
## `permanent`
Define the permanent
| | |
| ---------- | ---------------------------------- |
| Key | `middlewares.$name.data.permanent` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
permanent: true
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: redirect-regex
data:
regex: some-regex
replacement: some-replacement
permanent: true
```
@@ -1,82 +0,0 @@
---
title: Redirect Scheme Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/redirect-scheme#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/redirectscheme)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: redirect-scheme`.
:::
---
## `scheme`
Define the scheme
| | |
| ---------- | ------------------------------- |
| Key | `middlewares.$name.data.scheme` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
scheme: https
```
---
## `permanent`
Define the permanent
| | |
| ---------- | ---------------------------------- |
| Key | `middlewares.$name.data.permanent` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
permanent: true
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: redirect-scheme
data:
scheme: https
permanent: true
```
@@ -1,82 +0,0 @@
---
title: Replace Path Regex Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/replace-path-regex#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/replacepathregex)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: replace-path-regex`.
:::
---
## `regex`
Define the regex
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.regex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
regex: /some-path
```
---
## `replacement`
Define the replacement
| | |
| ---------- | ------------------------------------ |
| Key | `middlewares.$name.data.replacement` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
replacement: /some-replacement
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: replace-path-regex
data:
regex: /some-path
replacement: /some-replacement
```
@@ -1,58 +0,0 @@
---
title: Replace Path Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/replace-path#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/replacepath)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: replace-path`.
:::
---
## `path`
Define the path
| | |
| ---------- | ----------------------------- |
| Key | `middlewares.$name.data.path` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
path: /some-path
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: replace-path
data:
path: /some-path
```
@@ -1,82 +0,0 @@
---
title: Retry Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/retry#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/retry)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: retry`.
:::
---
## `attempts`
Define the path
| | |
| ---------- | --------------------------------- |
| Key | `middlewares.$name.data.attempts` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
attempts: 3
```
---
## `initialInterval`
Define the initialInterval
| | |
| ---------- | ---------------------------------------- |
| Key | `middlewares.$name.data.initialInterval` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
initialInterval: 1000
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: retry
data:
attempts: 3
initialInterval: 1000
```
@@ -1,62 +0,0 @@
---
title: Strip Prefix Regex Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/strip-prefix-regex#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/stripprefixregex)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: strip-prefix-regex`.
:::
---
## `regex`
Define the regexes
| | |
| ---------- | ------------------------------ |
| Key | `middlewares.$name.data.regex` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
regex:
- some-regex
- some-other-regex
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: strip-prefix-regex
data:
regex:
- some-regex
- some-other-regex
```
@@ -1,86 +0,0 @@
---
title: Strip Prefix Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/strip-prefix#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/stripprefix)
:::
## Appears in
- `.Values.middlewares.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: strip-prefix`.
:::
---
## `prefix`
Define the prefixes
| | |
| ---------- | ------------------------------- |
| Key | `middlewares.$name.data.prefix` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
prefix:
- /some-prefix
- /some-other-prefix
```
---
## `forceSlash`
Define the forceSlash
| | |
| ---------- | ----------------------------------- |
| Key | `middlewares.$name.data.forceSlash` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
middleware-name:
data:
forceSlash: true
```
---
## Full Examples
```yaml
middlewares:
middleware-name:
enabled: true
type: strip-prefix
data:
prefix:
- /some-prefix
- /some-other-prefix
forceSlash: true
```
@@ -0,0 +1,60 @@
---
title: Add Prefix Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/add-prefix#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/addprefix)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: add-prefix`.
:::
---
## `prefix`
Define the prefix
| | |
| ---------- | ---------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.prefix` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
prefix: some-prefix
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: add-prefix
data:
prefix: some-prefix
```
@@ -0,0 +1,157 @@
---
title: Basic Auth Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/basic-auth#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/basicauth)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: basic-auth`.
:::
---
## `users`
Define the users
:::note
If this is set, the `secret` key must not be set.
:::
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.users` |
| Type | `list` of `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
users:
- username: some-username
password: some-password
```
---
### `users[].username`
Define the username
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.users.username` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
users:
- username: some-username
password: some-password
```
---
### `users[].password`
Define the password
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.users.password` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
users:
- username: some-username
password: some-password
```
---
## `secret`
Define the secret
:::note
If this is set, the `users` key must not be set.
:::
| | |
| ---------- | ---------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.secret` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
secret: some-secret
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name1:
enabled: true
type: basic-auth
data:
users:
- username: some-username
password: some-password
middleware-name2:
enabled: true
type: basic-auth
data:
secret: some-secret
```
@@ -0,0 +1,152 @@
---
title: Buffering Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/buffering#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/buffering)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: buffering`.
:::
---
## `maxRequestBodyBytes`
Define the maxRequestBodyBytes
| | |
| ---------- | ----------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.maxRequestBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
maxRequestBodyBytes: 1024
```
---
## `memRequestBodyBytes`
Define the memRequestBodyBytes
| | |
| ---------- | ----------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.memRequestBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
memRequestBodyBytes: 1024
```
---
## `maxResponseBodyBytes`
Define the maxResponseBodyBytes
| | |
| ---------- | ------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.maxResponseBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
maxResponseBodyBytes: 1024
```
---
## `memResponseBodyBytes`
Define the memResponseBodyBytes
| | |
| ---------- | ------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.memResponseBodyBytes` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
memResponseBodyBytes: 1024
```
---
## `retryExpression`
Define the retryExpression
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.retryExpression` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
retryExpression: "some-expression"
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: buffering
data:
maxRequestBodyBytes: 1024
memRequestBodyBytes: 1024
maxResponseBodyBytes: 1024
memResponseBodyBytes: 1024
retryExpression: "some-expression"
```
@@ -0,0 +1,114 @@
---
title: Chain Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/chain#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/chain)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: chain`.
:::
---
## `middlewares`
Define the middlewares
| | |
| ---------- | --------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.middlewares` |
| Type | `list` of `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
traefik:
middleware-name:
data:
middlewares: []
```
---
### `middlewares[].name`
Define the middleware name
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.middlewares.name` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
middlewares:
traefik:
middleware-name:
data:
middlewares:
- name: some-name
```
---
### `middlewares[].expandObjectName`
Define the middleware expandObjectName
| | |
| ---------- | -------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.middlewares.expandObjectName` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `true` |
Example
```yaml
middlewares:
traefik:
middleware-name:
data:
middlewares:
- name: some-name
expandObjectName: false
```
---
## Full Examples
```yaml
middlewares:
traefik:
middleware-name:
enabled: true
type: chain
data:
middlewares:
- name: some-middleware
- name: some-other-middleware
expandObjectName: false
```
@@ -5,14 +5,14 @@ title: Compress Middleware
:::note :::note
- Examples under each key are only to be used as a placement guide - Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/compress#full-examples) section for complete examples. - See the [Full Examples](/common/middlewares/traefik/compress#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/compress) - Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/compress)
::: :::
## Appears in ## Appears in
- `.Values.middlewares.$name.data` - `.Values.ingressMiddlewares.traefik.$name.data`
:::tip :::tip
@@ -26,8 +26,9 @@ title: Compress Middleware
## Full Examples ## Full Examples
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
enabled: true middleware-name:
type: compress enabled: true
type: compress
``` ```
@@ -5,14 +5,14 @@ title: Content Type Middleware
:::note :::note
- Examples under each key are only to be used as a placement guide - Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/content-type#full-examples) section for complete examples. - See the [Full Examples](/common/middlewares/traefik/content-type#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/contenttype) - Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/contenttype)
::: :::
## Appears in ## Appears in
- `.Values.middlewares.$name.data` - `.Values.ingressMiddlewares.$name.data`
:::tip :::tip
@@ -26,8 +26,9 @@ title: Content Type Middleware
## Full Examples ## Full Examples
```yaml ```yaml
middlewares: ingressMiddlewares:
middleware-name: traefik:
enabled: true middleware-name:
type: content-type enabled: true
type: content-type
``` ```
@@ -0,0 +1,215 @@
---
title: Forward Auth Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/forward-auth#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/forwardauth)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: forward-auth`.
:::
---
## `address`
Define the address
| | |
| ---------- | ----------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.address` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
address: some-address
```
---
## `authResponseHeadersRegex`
Define the authResponseHeadersRegex
| | |
| ---------- | ---------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.authResponseHeadersRegex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
authResponseHeadersRegex: some-regex
```
---
## `trustForwardHeader`
Define the trustForwardHeader
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.trustForwardHeader` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `false` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
trustForwardHeader: true
```
---
## `authResponseHeaders`
Define the authResponseHeaders
| | |
| ---------- | ----------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.authResponseHeaders` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `[]` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
authResponseHeaders:
- some-header
```
---
## `authRequestHeaders`
Define the authRequestHeaders
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.authRequestHeaders` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `[]` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
authRequestHeaders:
- some-header
```
---
## `tls`
Define the tls
| | |
| ---------- | ------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.tls` |
| Type | `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
tls: {}
```
---
### `tls.insecureSkipVerify`
Define the tls.insecureSkipVerify
| | |
| ---------- | -------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.tls.insecureSkipVerify` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `false` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
tls:
insecureSkipVerify: true
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: forward-auth
data:
address: some-address
authResponseHeadersRegex: some-regex
trustForwardHeader: true
authResponseHeaders:
- some-header
authRequestHeaders:
- some-header
tls:
insecureSkipVerify: true
```
@@ -0,0 +1,777 @@
---
title: Headers Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/headers#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/headers)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: headers`.
:::
---
## `customRequestHeaders`
Define the customRequestHeaders
| | |
| ---------- | ------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.customRequestHeaders` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
customRequestHeaders:
some-name: some-value
some-other-name: some-other-value
```
---
## `customResponseHeaders`
Define the customResponseHeaders
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.customResponseHeaders` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
customResponseHeaders:
some-name: some-value
some-other-name: some-other-value
```
---
## `accessControlAllowCredentials`
Define the accessControlAllowCredentials
| | |
| ---------- | --------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowCredentials` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlAllowCredentials: true
```
---
## `accessControlAllowHeaders`
Define the accessControlAllowHeaders
| | |
| ---------- | ----------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowHeaders` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlAllowHeaders:
- some-header
- some-other-header
```
---
## `accessControlAllowMethods`
Define the accessControlAllowMethods
| | |
| ---------- | ----------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowMethods` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlAllowMethods:
- GET
- POST
- PUT
- DELETE
```
---
## `accessControlAllowOriginList`
Define the accessControlAllowOriginList
| | |
| ---------- | -------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowOriginList` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlAllowOriginList:
- some-origin
- some-other-origin
```
---
## `accessControlAllowOriginListRegex`
Define the accessControlAllowOriginListRegex
| | |
| ---------- | -------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowOriginList` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlAllowOriginListRegex:
- some-origin-regex
- some-other-origin-regex
```
---
## `accessControlExposeHeaders`
Define the accessControlExposeHeaders
| | |
| ---------- | ------------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlExposeHeaders` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlExposeHeaders:
- some-header
- some-other-header
```
---
## `accessControlMaxAge`
Define the accessControlMaxAge
| | |
| ---------- | ----------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.accessControlMaxAge` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
accessControlMaxAge: 1000
```
---
## `addVaryHeader`
Define the addVaryHeader
| | |
| ---------- | ----------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.addVaryHeader` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
addVaryHeader: true
```
---
## `allowedHosts`
Define the allowedHosts
| | |
| ---------- | ---------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.allowedHosts` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
allowedHosts:
- some-host
- some-other-host
```
---
## `hostsProxyHeaders`
Define the hostsProxyHeaders
| | |
| ---------- | --------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.hostsProxyHeaders` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
hostsProxyHeaders:
- some-header
- some-other-header
```
---
## `sslProxyHeaders`
Define the sslProxyHeaders
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.sslProxyHeaders` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
sslProxyHeaders:
some-header: some-value
some-other-header: some-other-value
```
---
## `stsSeconds`
Define the stsSeconds
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.stsSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
stsSeconds: 1000
```
---
## `stsIncludeSubdomains`
Define the stsIncludeSubdomains
| | |
| ---------- | ------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.stsIncludeSubdomains` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
stsIncludeSubdomains: true
```
---
## `stsPreload`
Define the stsPreload
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.stsPreload` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
stsPreload: true
```
---
## `forceSTSHeader`
Define the forceSTSHeader
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.forceSTSHeader` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
forceSTSHeader: true
```
---
## `frameDeny`
Define the frameDeny
| | |
| ---------- | ------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.frameDeny` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
frameDeny: true
```
---
## `customFrameOptionsValue`
Define the customFrameOptionsValue
| | |
| ---------- | --------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.customFrameOptionsValue` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
customFrameOptionsValue: some-value
```
---
## `contentTypeNosniff`
Define the contentTypeNosniff
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.contentTypeNosniff` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
contentTypeNosniff: true
```
---
## `browserXssFilter`
Define the browserXssFilter
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.browserXssFilter` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
browserXssFilter: true
```
---
## `customBrowserXSSValue`
Define the customBrowserXSSValue
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.customBrowserXSSValue` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
customBrowserXSSValue: some-value
```
---
## `contentSecurityPolicy`
Define the contentSecurityPolicy
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.contentSecurityPolicy` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
contentSecurityPolicy: some-value
```
---
## `contentSecurityPolicyReportOnly`
Define the contentSecurityPolicyReportOnly
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.contentSecurityPolicy` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
contentSecurityPolicyReportOnly: true
```
---
## `publicKey`
Define the publicKey
| | |
| ---------- | ------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.publicKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
publicKey: some-public-key
```
---
## `referrerPolicy`
Define the referrerPolicy
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.referrerPolicy` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
referrerPolicy: some-referrer-policy
```
---
## `permissionsPolicy`
Define the permissionsPolicy
| | |
| ---------- | --------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.permissionsPolicy` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
permissionsPolicy: some-permissions-policy
```
---
## `isDevelopment`
Define the isDevelopment
| | |
| ---------- | ----------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.isDevelopment` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
isDevelopment: true
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: headers
data:
customRequestHeaders:
some-name: some-value
some-other-name: some-other-value
customResponseHeaders:
some-name: some-value
some-other-name: some-other-value
accessControlAllowCredentials: true
accessControlAllowHeaders:
- some-header
- some-other-header
accessControlAllowMethods:
- GET
- DELETE
accessControlAllowOriginList:
- some-origin
- some-other-origin
accessControlAllowOriginListRegex:
- some-origin-regex
- some-other-origin-regex
accessControlExposeHeaders:
- some-header
- some-other-header
accessControlMaxAge: 1000
addVaryHeader: true
allowedHosts:
- some-host
- some-other-host
hostsProxyHeaders:
- some-header
- some-other-header
sslProxyHeaders:
some-header: some-value
some-other-header: some-other-value
stsSeconds: 1000
stsIncludeSubdomains: true
stsPreload: true
forceSTSHeader: true
frameDeny: true
customFrameOptionsValue: some-value
contentTypeNosniff: true
browserXssFilter: true
customBrowserXSSValue: some-value
contentSecurityPolicy: some-value
contentSecurityPolicyReportOnly: true
publicKey: some-public-key
referrerPolicy: some-referrer-policy
permissionsPolicy: some-permissions-policy
isDevelopment: true
```
@@ -0,0 +1,83 @@
---
title: Traefik Middlewares
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik#full-examples) section for complete examples.
:::
## Appears in
- `.Values.ingressMiddlewares.traefik`
:::tip
- Replace references to `$name` with the actual name you want to use.
:::
---
## `type`
Define the type for this object
Available types:
- [add-prefix](/common/middlewares/traefik/add-prefix)
- [basic-auth](/common/middlewares/traefik/basic-auth)
- [buffering](/common/middlewares/traefik/buffering)
- [chain](/common/middlewares/traefik/chain)
- [compress](/common/middlewares/traefik/compress)
- [content-type](/common/middlewares/traefik/content-type)
- [forward-auth](/common/middlewares/traefik/forward-auth)
- [headers](/common/middlewares/traefik/headers)
- [ip-allow-list](/common/middlewares/traefik/ip-allow-list)
- [plugin-bouncer](/common/middlewares/traefik/plugin-bouncer)
- [plugin-geoblock](/common/middlewares/traefik/plugin-geoblock)
- [plugin-mod-security](/common/middlewares/traefik/plugin-mod-security)
- [plugin-real-ip](/common/middlewares/traefik/plugin-real-ip)
- [plugin-rewrite-response-headers](/common/middlewares/traefik/plugin-rewrite-response-headers)
- [plugin-theme-park](/common/middlewares/traefik/plugin-theme-park)
- [rate-limit](/common/middlewares/traefik/rate-limit)
- [redirect-regex](/common/middlewares/traefik/redirect-regex)
- [redirect-scheme](/common/middlewares/traefik/redirect-scheme)
- [replace-path-regex](/common/middlewares/traefik/replace-path-regex)
- [replace-path](/common/middlewares/traefik/replace-path)
- [retry](/common/middlewares/traefik/retry)
- [strip-prefix-regex](/common/middlewares/traefik/strip-prefix-regex)
- [strip-prefix](/common/middlewares/traefik/strip-prefix)
| | |
| ---------- | ----------------------------------------- |
| Key | `ingressMiddlewares.$provider.$name.type` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `""` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
type: buffering
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: buffering
data:
key: value
```
@@ -0,0 +1,141 @@
---
title: IP Allow List Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/ip-allow-list#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ipallowlist)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: ip-allow-list`.
:::
---
## `sourceRange`
Define the sourceRange
| | |
| ---------- | --------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.sourceRange` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
sourceRange:
- some-source-range
```
---
## `ipStrategy`
Define the ipStrategy
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.ipStrategy` |
| Type | `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
ipStrategy: {}
```
---
### `ipStrategy.depth`
Define the ipStrategy.depth
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.ipStrategy.depth` |
| Type | `int` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
ipStrategy:
depth: 1
```
---
### `ipStrategy.excludedIPs`
Define the ipStrategy.excludedIPs
| | |
| ---------- | -------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.ipStrategy.excludedIPs` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
ipStrategy:
excludedIPs:
- some-excluded-ip
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: ip-allow-list
data:
sourceRange:
- some-source-range
ipStrategy:
depth: 1
excludedIPs:
- some-excluded-ip
```
@@ -0,0 +1,972 @@
---
title: Plugin Bouncer Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/plugin-bouncer#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-bouncer`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `bouncer` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `enabled`
Define the enabled
| | |
| ---------- | ----------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.enabled` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
enabled: true
```
---
## `logLevel`
Define the logLevel
| | |
| ---------- | ------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.logLevel` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
logLevel: DEBUG
```
---
## `updateIntervalSeconds`
Define the updateIntervalSeconds
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.updateIntervalSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
updateIntervalSeconds: 60
```
---
## `updateMaxFailure`
Define the updateMaxFailure
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.updateMaxFailure` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
updateMaxFailure: 0
```
---
## `defaultDecisionSeconds`
Define the defaultDecisionSeconds
| | |
| ---------- | -------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.defaultDecisionSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
defaultDecisionSeconds: 60
```
---
## `httpTimeoutSeconds`
Define the httpTimeoutSeconds
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.httpTimeoutSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
httpTimeoutSeconds: 10
```
---
## `crowdsecMode`
Define the crowdsecMode
| | |
| ---------- | ------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsec` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecMode: live
```
---
## `crowdsecAppsecEnabled`
Define the crowdsecAppsecEnabled
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecEnabled` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecAppsecEnabled: false
```
---
## `crowdsecAppsecHost`
Define the crowdsecAppsecHost
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecHost` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecAppsecHost: crowdsec:7422
```
---
## `crowdsecAppsecFailureBlock`
Define the crowdsecAppsecFailureBlock
| | |
| ---------- | ------------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecFailureBlock` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecAppsecFailureBlock: true
```
---
## `crowdsecAppsecUnreachableBlock`
Define the crowdsecAppsecUnreachableBlock
| | |
| ---------- | ---------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecUnreachableBlock` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecAppsecUnreachableBlock: true
```
---
## `crowdsecLapiKey`
Define the crowdsecLapiKey
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiKey: privateKey-foo
```
---
## `crowdsecLapiHost`
Define the crowdsecLapiHost
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiHost` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiHost: crowdsec:8080
```
---
## `crowdsecLapiScheme`
Define the crowdsecLapiScheme
| | |
| ---------- | ------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsec` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiScheme: http
```
---
## `crowdsecLapiTLSInsecureVerify`
Define the crowdsecLapiTLSInsecureVerify
| | |
| ---------- | --------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSInsecureVerify` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiTLSInsecureVerify: false
```
---
## `crowdsecCapiMachineId`
Define the crowdsecCapiMachineId
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecCapiMachineId` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecCapiMachineId: login
```
---
## `crowdsecCapiPassword`
Define the crowdsecCapiPassword
| | |
| ---------- | ------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecCapiPassword` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecCapiPassword: password
```
---
## `crowdsecCapiScenarios`
Define the crowdsecCapiScenarios
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecCapiScenarios` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecCapiScenarios:
- crowdsecurity/http-path-traversal-probing
- crowdsecurity/http-xss-probing
- crowdsecurity/http-generic-bf
```
---
## `forwardedHeadersTrustedIPs`
Define the forwardedHeadersTrustedIPs
| | |
| ---------- | ------------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.forwardedHeadersTrustedIPs` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
forwardedHeadersTrustedIPs:
- 10.0.10.23/32
- 10.0.20.0/24
```
---
## `clientTrustedIPs`
Define the clientTrustedIPs
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.clientTrustedIPs` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
clientTrustedIPs:
- 192.168.1.0/24
```
---
## `forwardedHeadersCustomName`
Define the forwardedHeadersCustomName
| | |
| ---------- | ------------------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.forwardedHeadersCustomName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
forwardedHeadersCustomName: X-Custom-Header
```
---
## `remediationHeadersCustomName`
Define the remediationHeadersCustomName
| | |
| ---------- | -------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.remediationHeadersCustomName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
remediationHeadersCustomName: cs-remediation
```
---
## `redisCacheEnabled`
Define the redisCacheEnabled
| | |
| ---------- | --------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.redisCacheEnabled` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
redisCacheEnabled: false
```
---
## `redisCacheHost`
Define the redisCacheHost
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.redisCacheHost` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
redisCacheHost: "redis:6379"
```
---
## `redisCachePassword`
Define the redisCachePassword
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.redisCachePassword` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
redisCachePassword: password
```
---
## `redisCacheDatabase`
Define the redisCacheDatabase
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.redisCacheDatabase` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
redisCacheDatabase: "5"
```
---
## `crowdsecLapiTLSCertificateAuthority`
Define the crowdsecLapiTLSCertificateAuthority
| | |
| ---------- | --------------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSCertificateAuthority` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiTLSCertificateAuthority: |-
-----BEGIN CERTIFICATE-----
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
...
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
-----END CERTIFICATE-----
```
---
## `crowdsecLapiTLSCertificateBouncer`
Define the crowdsecLapiTLSCertificateBouncer
| | |
| ---------- | ------------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSCertificateBouncer` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiTLSCertificateBouncer: |-
-----BEGIN CERTIFICATE-----
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
...
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
N2U=
-----END CERTIFICATE-----
```
---
## `crowdsecLapiTLSCertificateBouncerKey`
Define the crowdsecLapiTLSCertificateBouncerKey
| | |
| ---------- | ---------------------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSCertificateBouncerKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
crowdsecLapiTLSCertificateBouncerKey: |-
-----BEGIN TOTALY NOT A SECRET-----
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
...
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
-----END TOTALY NOT A SECRET-----
```
---
## `captchaProvider`
Define the captchaProvider
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.captchaProvider` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
captchaProvider: hcaptcha
```
---
## `captchaSiteKey`
Define the captchaSiteKey
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.captchaSiteKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
captchaSiteKey: FIXME
```
---
## `captchaSecretKey`
Define the captchaSecretKey
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.captchaSecretKey` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
captchaSecretKey: FIXME
```
---
## `captchaGracePeriodSeconds`
Define the captchaGracePeriodSeconds
| | |
| ---------- | ----------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.captchaGracePeriodSeconds` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
captchaGracePeriodSeconds: 1800
```
---
## `captchaHTMLFilePath`
Define the captchaHTMLFilePath
| | |
| ---------- | ----------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.captchaHTMLFilePath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
captchaHTMLFilePath: /captcha.html
```
---
## `banHTMLFilePath`
Define the banHTMLFilePath
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.banHTMLFilePath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
banHTMLFilePath: /ban.html
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: plugin-bouncer
data:
enabled: true
logLevel: DEBUG
updateIntervalSeconds: 60
updateMaxFailure: 0
defaultDecisionSeconds: 60
httpTimeoutSeconds: 10
crowdsecMode: live
crowdsecAppsecEnabled: false
crowdsecAppsecHost: crowdsec:7422
crowdsecAppsecFailureBlock: true
crowdsecAppsecUnreachableBlock: true
crowdsecLapiKey: privateKey-foo
crowdsecLapiHost: crowdsec:8080
crowdsecLapiScheme: http
crowdsecLapiTLSInsecureVerify: false
crowdsecCapiMachineId: login
crowdsecCapiPassword: password
crowdsecCapiScenarios:
- crowdsecurity/http-path-traversal-probing
- crowdsecurity/http-xss-probing
- crowdsecurity/http-generic-bf
forwardedHeadersTrustedIPs:
- 10.0.10.23/32
- 10.0.20.0/24
clientTrustedIPs:
- 192.168.1.0/24
forwardedHeadersCustomName: X-Custom-Header
remediationHeadersCustomName: cs-remediation
redisCacheEnabled: false
redisCacheHost: "redis:6379"
redisCachePassword: password
redisCacheDatabase: "5"
crowdsecLapiTLSCertificateAuthority: |-
-----BEGIN TOTALY NOT A CERT-----
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
...
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
-----END TOTALY NOT A CERT-----
crowdsecLapiTLSCertificateBouncer: |-
-----BEGIN TOTALY NOT A CERT-----
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
...
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
N2U=
-----END TOTALY NOT A CERT-----
captchaProvider: hcaptcha
captchaSiteKey: FIXME
captchaSecretKey: FIXME
captchaGracePeriodSeconds: 1800
captchaHTMLFilePath: /captcha.html
banHTMLFilePath: /ban.html
```
@@ -0,0 +1,413 @@
---
title: Plugin Geoblock Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/plugin-geoblock#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/PascalMinder/geoblock)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-geoblock`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `GeoBlock` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `api`
Define the api
| | |
| ---------- | ------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.api` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
api: https://api.geoblock.org/v2/geoblock
```
---
## `allowLocalRequests`
Define the allowLocalRequests
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.allowLocalRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
allowLocalRequests: true
```
---
## `logLocalRequests`
Define the logLocalRequests
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.logLocalRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
logLocalRequests: true
```
---
## `logAllowedRequests`
Define the logAllowedRequests
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.logAllowedRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
logAllowedRequests: true
```
---
## `logApiRequests`
Define the logApiRequests
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.logApiRequests` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
logApiRequests: true
```
---
## `apiTimeoutMs`
Define the apiTimeoutMs
| | |
| ---------- | ---------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.apiTimeoutMs` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
apiTimeoutMs: 1000
```
---
## `cacheSize`
Define the cacheSize
| | |
| ---------- | ------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.cacheSize` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
cacheSize: 1000
```
---
## `forceMonthlyUpdate`
Define the forceMonthlyUpdate
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.forceMonthlyUpdate` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
forceMonthlyUpdate: true
```
---
## `allowUnknownCountries`
Define the allowUnknownCountries
| | |
| ---------- | ------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.allowUnknownCountries` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
allowUnknownCountries: true
```
---
## `unknownCountryApiResponse`
Define the unknownCountryApiResponse
| | |
| ---------- | ----------------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.unknownCountryApiResponse` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
unknownCountryApiResponse: some-value
```
---
## `blackListMode`
Define the blackListMode
| | |
| ---------- | ----------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.blackListMode` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
blackListMode: true
```
---
## `silentStartUp`
Define the silentStartUp
| | |
| ---------- | ----------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.silentStartUp` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
silentStartUp: true
```
---
## `addCountryHeader`
Define the addCountryHeader
| | |
| ---------- | -------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.addCountryHeader` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
addCountryHeader: true
```
---
## `countries`
Define the countries
| | |
| ---------- | ------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.countries` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
countries:
- some-country
- some-other-country
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: plugin-geoblock
data:
api: https://api.geoblock.org/v2/geoblock
allowLocalRequests: true
logLocalRequests: true
logAllowedRequests: true
logApiRequests: true
apiTimeoutMs: 1000
cacheSize: 1000
forceMonthlyUpdate: true
allowUnknownCountries: true
unknownCountryApiResponse: some-value
blackListMode: some-value
silentStartUp: true
addCountryHeader: true
countries:
- some-country
- some-other-country
```
@@ -0,0 +1,135 @@
---
title: Plugin Mod Security Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/plugin-mod-security#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/acouvreur/traefik-modsecurity-plugin)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-mod-security`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `traefik-modsecurity-plugin` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `modSecurityUrl`
Define the modSecurityUrl
| | |
| ---------- | ------------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.modSecurityUrl` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
modSecurityUrl: https://example.com
```
---
## `timeoutMillis`
Define the timeoutMillis
| | |
| ---------- | ----------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.timeoutMillis` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
timeoutMillis: 1000
```
---
## `maxBodySize`
Define the maxBodySize
| | |
| ---------- | --------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.maxBodySize` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
maxBodySize: 1024
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: plugin-mod-security
data:
pluginName: my-plugin-name
modSecurityUrl: https://example.com
timeoutMillis: 1000
maxBodySize: 1024
```
@@ -0,0 +1,89 @@
---
title: Plugin Real IP Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/plugin-theme-park#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/jramsgz/traefik-real-ip)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-real-ip`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `traefik-real-ip` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `excludednets`
Define the excludednets
| | |
| ---------- | ---------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.excludednets` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
excludednets:
- some-excluded-net
- some-other-excluded-net
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: plugin-real-ip
data:
pluginName: my-plugin-name
excludednets:
- some-excluded-net
- some-other-excluded-net
```
@@ -0,0 +1,169 @@
---
title: Plugin Rewrite Response Headers Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/plugin-rewrite-response-headers#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/XciD/traefik-plugin-rewrite-headers/)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-rewrite-response-headers`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `rewriteResponseHeaders` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `rewrites`
Define the rewrites
| | |
| ---------- | ------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.rewrites` |
| Type | `list` of `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
rewrites:
- header: some-header
regex: some-regex
replacement: some-replacement
```
---
### `rewrites[].header`
Define the header
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.rewrites.header` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
rewrites:
- header: some-header
```
---
### `rewrites[].regex`
Define the regex
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.regex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
rewrites:
- regex: some-regex
```
---
### `rewrites[].replacement`
Define the replacement
| | |
| ---------- | --------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.replacement` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
rewrites:
- replacement: some-replacement
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: plugin-rewrite-response-headers
data:
pluginName: my-plugin-name
rewrites:
- header: some-header
regex: some-regex
replacement: some-replacement
- header: some-other-header
regex: some-other-regex
replacement: some-other-replacement
```
@@ -0,0 +1,164 @@
---
title: Plugin Theme Park Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/plugin-theme-park#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://github.com/packruler/traefik-themepark)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: plugin-theme-park`.
:::
---
## `pluginName`
Define the pluginName
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `traefik-themepark` |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
pluginName: my-plugin-name
```
---
## `app`
Define the app
| | |
| ---------- | ------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.app` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
app: sonarr
```
---
## `theme`
Define the theme
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.theme` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
theme: dark
```
---
## `baseUrl`
Define the baseUrl
| | |
| ---------- | ----------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.baseUrl` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
baseUrl: https://example.com
```
---
## `addons`
Define the addons
| | |
| ---------- | ---------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.addons` |
| Type | `list` of `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
addons:
- some-addon
- some-other-addon
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: plugin-theme-park
data:
pluginName: my-plugin-name
app: sonarr
theme: dark
baseUrl: https://example.com
addons:
- some-addon
- some-other-addon
```
@@ -0,0 +1,85 @@
---
title: Rate Limit Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/rate-limit#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ratelimit)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: rate-limit`.
:::
---
## `average`
Define the average rate limit
| | |
| ---------- | ----------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.average` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
average: 1000
```
---
## `burst`
Define the burst rate limit
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.burst` |
| Type | `int` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
burst: 1000
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: rate-limit
data:
average: 1000
burst: 1000
```
@@ -0,0 +1,110 @@
---
title: Redirect Regex Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/redirect-regex#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/redirectregex)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: redirect-regex`.
:::
---
## `regex`
Define the regex
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.regex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
regex: some-regex
```
---
## `replacement`
Define the replacement
| | |
| ---------- | --------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.replacement` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
replacement: some-replacement
```
---
## `permanent`
Define the permanent
| | |
| ---------- | ------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.permanent` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
permanent: true
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: redirect-regex
data:
regex: some-regex
replacement: some-replacement
permanent: true
```
@@ -0,0 +1,85 @@
---
title: Redirect Scheme Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/redirect-scheme#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/redirectscheme)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: redirect-scheme`.
:::
---
## `scheme`
Define the scheme
| | |
| ---------- | ---------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.scheme` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
scheme: https
```
---
## `permanent`
Define the permanent
| | |
| ---------- | ------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.permanent` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
permanent: true
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: redirect-scheme
data:
scheme: https
permanent: true
```
@@ -0,0 +1,85 @@
---
title: Replace Path Regex Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/replace-path-regex#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/replacepathregex)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: replace-path-regex`.
:::
---
## `regex`
Define the regex
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.regex` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
regex: /some-path
```
---
## `replacement`
Define the replacement
| | |
| ---------- | --------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.replacement` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
replacement: /some-replacement
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: replace-path-regex
data:
regex: /some-path
replacement: /some-replacement
```
@@ -0,0 +1,60 @@
---
title: Replace Path Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/replace-path#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/replacepath)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: replace-path`.
:::
---
## `path`
Define the path
| | |
| ---------- | -------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.path` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
path: /some-path
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: replace-path
data:
path: /some-path
```
@@ -0,0 +1,85 @@
---
title: Retry Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/retry#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/retry)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: retry`.
:::
---
## `attempts`
Define the path
| | |
| ---------- | ------------------------------------------------ |
| Key | `ingressMiddlewares.traefik.$name.data.attempts` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
attempts: 3
```
---
## `initialInterval`
Define the initialInterval
| | |
| ---------- | ------------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.initialInterval` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
initialInterval: 1000
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: retry
data:
attempts: 3
initialInterval: 1000
```
@@ -0,0 +1,64 @@
---
title: Strip Prefix Regex Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/strip-prefix-regex#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/stripprefixregex)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: strip-prefix-regex`.
:::
---
## `regex`
Define the regexes
| | |
| ---------- | --------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.regex` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
regex:
- some-regex
- some-other-regex
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: strip-prefix-regex
data:
regex:
- some-regex
- some-other-regex
```
@@ -0,0 +1,89 @@
---
title: Strip Prefix Middleware
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/common/middlewares/traefik/strip-prefix#full-examples) section for complete examples.
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/stripprefix)
:::
## Appears in
- `.Values.ingressMiddlewares.traefik.$name.data`
:::tip
- See available middleware keys [here](/common/middlewares).
- This options apply only when `type: strip-prefix`.
:::
---
## `prefix`
Define the prefixes
| | |
| ---------- | ---------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.prefix` |
| Type | `list` of `string` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
prefix:
- /some-prefix
- /some-other-prefix
```
---
## `forceSlash`
Define the forceSlash
| | |
| ---------- | -------------------------------------------------- |
| Key | `ingressMiddlewares.traefik.$name.data.forceSlash` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | - |
Example
```yaml
ingressMiddlewares:
traefik:
middleware-name:
data:
forceSlash: true
```
---
## Full Examples
```yaml
ingressMiddlewares:
traefik:
middleware-name:
enabled: true
type: strip-prefix
data:
prefix:
- /some-prefix
- /some-other-prefix
forceSlash: true
```