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:
co-authored by
Stavros Kois
Stavros Kois
parent
1d24bd1c0a
commit
a27d735b9d
@@ -7,7 +7,7 @@ apiVersion: v2
|
||||
appVersion: unknown
|
||||
dependencies:
|
||||
- name: common
|
||||
version: ~25.4.0
|
||||
version: ~25.5.0
|
||||
repository: file://../common/
|
||||
condition: ""
|
||||
alias: ""
|
||||
|
||||
@@ -20,18 +20,19 @@ tests:
|
||||
annotations:
|
||||
g_annotation1: global_annotation1
|
||||
g_annotation2: "{{ .Values.annotation2 }}"
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels:
|
||||
label1: "{{ .Values.label1 }}"
|
||||
label2: label2
|
||||
annotations:
|
||||
annotation1: "{{ .Values.annotation1 }}"
|
||||
annotation2: annotation2
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels:
|
||||
label1: "{{ .Values.label1 }}"
|
||||
label2: label2
|
||||
annotations:
|
||||
annotation1: "{{ .Values.annotation1 }}"
|
||||
annotation2: annotation2
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -67,13 +68,14 @@ tests:
|
||||
|
||||
- it: should pass with middlewares created with namespace
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: some-namespace
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: some-namespace
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -83,13 +85,14 @@ tests:
|
||||
- it: should pass with middlewares created with object namespace from tpl
|
||||
set:
|
||||
key: some-namespace
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: "{{ .Values.key }}"
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: "{{ .Values.key }}"
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -101,12 +104,13 @@ tests:
|
||||
key: global-namespace
|
||||
global:
|
||||
namespace: "{{ .Values.key }}"
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -119,12 +123,13 @@ tests:
|
||||
namespace: "{{ .Values.key }}"
|
||||
global:
|
||||
namespace: global-namespace
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
|
||||
@@ -7,12 +7,13 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
prefix: some-prefix
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
prefix: some-prefix
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -26,12 +27,13 @@ tests:
|
||||
|
||||
- it: should fail with missing prefix
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (add-prefix) - Expected [prefix] to be set
|
||||
|
||||
@@ -7,21 +7,22 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
- username: some-other-username
|
||||
password: some-other-password
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
- username: some-other-username
|
||||
password: some-other-password
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -55,27 +56,29 @@ tests:
|
||||
|
||||
- it: should fail with missing both users and secret
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set
|
||||
|
||||
- it: should fail with both secret and users set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both
|
||||
|
||||
@@ -7,16 +7,17 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
memRequestBodyBytes: 1024
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: some-expression
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
memRequestBodyBytes: 1024
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: some-expression
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -34,12 +35,13 @@ tests:
|
||||
|
||||
- it: should pass with only maxRequestBodyBytes set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -50,16 +52,17 @@ tests:
|
||||
|
||||
- it: should render 0 and non-null values
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 0
|
||||
memRequestBodyBytes: null
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: ""
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 0
|
||||
memRequestBodyBytes: null
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: ""
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
|
||||
@@ -7,15 +7,16 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares:
|
||||
- name: some-name
|
||||
expandObjectName: false
|
||||
- name: some-other-name
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares:
|
||||
- name: some-name
|
||||
expandObjectName: false
|
||||
- name: some-other-name
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -31,12 +32,13 @@ tests:
|
||||
|
||||
- it: should fail with missing middlewares
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares: []
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares: []
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (chain) - Expected [middlewares] to be set
|
||||
|
||||
@@ -7,10 +7,11 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: compress
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: compress
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,10 +7,11 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: content-type
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: content-type
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,20 +7,21 @@ release:
|
||||
tests:
|
||||
- it: should pass with values
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeadersRegex: some-regex
|
||||
trustForwardHeader: true
|
||||
authResponseHeaders:
|
||||
- some-header
|
||||
authRequestHeaders:
|
||||
- some-header
|
||||
tls:
|
||||
insecureSkipVerify: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeadersRegex: some-regex
|
||||
trustForwardHeader: true
|
||||
authResponseHeaders:
|
||||
- some-header
|
||||
authRequestHeaders:
|
||||
- some-header
|
||||
tls:
|
||||
insecureSkipVerify: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -42,65 +43,70 @@ tests:
|
||||
|
||||
- it: should fail with missing address
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
authResponseHeadersRegex: some-regex
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
authResponseHeadersRegex: some-regex
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [address] to be set
|
||||
|
||||
- it: should fail with invalid authResponseHeaders
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeaders: some-header
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeaders: some-header
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [authResponseHeaders] to be a list, but got [string]
|
||||
|
||||
- it: should fail with invalid authRequestHeaders
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authRequestHeaders: some-header
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authRequestHeaders: some-header
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [authRequestHeaders] to be a list, but got [string]
|
||||
|
||||
- it: should fail with invalid tls.insecureSkipVerify
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
tls:
|
||||
insecureSkipVerify: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
tls:
|
||||
insecureSkipVerify: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [tls.insecureSkipVerify] to be a boolean, but got [string]
|
||||
|
||||
- it: should fail with invalid trustForwardHeader
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
trustForwardHeader: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
trustForwardHeader: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [trustForwardHeader] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,59 +7,60 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
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
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
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
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,17 +7,18 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
depth: 1
|
||||
excludedIPs:
|
||||
- some-excluded-ip
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
depth: 1
|
||||
excludedIPs:
|
||||
- some-excluded-ip
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -36,27 +37,29 @@ tests:
|
||||
|
||||
- it: should fail with invalid sourceRange
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange: some-source-range
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange: some-source-range
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (ip-allow-list) - Expected [sourceRange] to be a list, but got [string]
|
||||
|
||||
- it: should fail with invalid ipStrategy.excludedIPs
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
excludedIPs: some-excluded-ip
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
excludedIPs: some-excluded-ip
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (ip-allow-list) - Expected [ipStrategy.excludedIPs] to be a list, but got [string]
|
||||
|
||||
@@ -7,68 +7,69 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
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-----
|
||||
crowdsecLapiTLSCertificateBouncerKey: |-
|
||||
-----BEGIN TOTALY NOT A SECRET-----
|
||||
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
||||
...
|
||||
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
||||
-----END TOTALY NOT A SECRET-----
|
||||
captchaProvider: hcaptcha
|
||||
captchaSiteKey: FIXME
|
||||
captchaSecretKey: FIXME
|
||||
captchaGracePeriodSeconds: 1800
|
||||
captchaHTMLFilePath: /captcha.html
|
||||
banHTMLFilePath: /ban.html
|
||||
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-----
|
||||
crowdsecLapiTLSCertificateBouncerKey: |-
|
||||
-----BEGIN TOTALY NOT A SECRET-----
|
||||
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
||||
...
|
||||
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
||||
-----END TOTALY NOT A SECRET-----
|
||||
captchaProvider: hcaptcha
|
||||
captchaSiteKey: FIXME
|
||||
captchaSecretKey: FIXME
|
||||
captchaGracePeriodSeconds: 1800
|
||||
captchaHTMLFilePath: /captcha.html
|
||||
banHTMLFilePath: /ban.html
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -136,13 +137,14 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
pluginName: traefik-bouncer-test
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
pluginName: traefik-bouncer-test
|
||||
enabled: true
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -154,24 +156,26 @@ tests:
|
||||
|
||||
- it: should fail with missing enabled
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be set
|
||||
|
||||
- it: should fail with invalid enabled
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
enabled: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
enabled: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,27 +7,28 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
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: true
|
||||
silentStartUp: true
|
||||
addCountryHeader: true
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
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: true
|
||||
silentStartUp: true
|
||||
addCountryHeader: true
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -54,16 +55,17 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
pluginName: traefik-geoblock-test
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
pluginName: traefik-geoblock-test
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -78,24 +80,26 @@ tests:
|
||||
|
||||
- it: should fail with missing api
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-geoblock) - Expected [api] to be set
|
||||
|
||||
- it: should fail with missing countries
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-geoblock) - Expected [countries] to be set
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
modSecurityUrl: some-url
|
||||
timeoutMillis: 1000
|
||||
maxBodySize: 1024
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
modSecurityUrl: some-url
|
||||
timeoutMillis: 1000
|
||||
maxBodySize: 1024
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -28,13 +29,14 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
pluginName: traefik-mod-security-test
|
||||
modSecurityUrl: some-url
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
pluginName: traefik-mod-security-test
|
||||
modSecurityUrl: some-url
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -46,12 +48,13 @@ tests:
|
||||
|
||||
- it: should fail with missing modSecurityUrl
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (modsecurity) - Expected [modSecurityUrl] to be set
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -28,15 +29,16 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
pluginName: traefik-real-ip-test
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
pluginName: traefik-real-ip-test
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -50,12 +52,13 @@ tests:
|
||||
|
||||
- it: should fail with missing excludednets
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (real-ip) - Expected [excludednets] to be set
|
||||
|
||||
+65
-58
@@ -7,18 +7,19 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
- header: some-other-header
|
||||
regex: some-other-regex
|
||||
replacement: some-other-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
- header: some-other-header
|
||||
regex: some-other-regex
|
||||
replacement: some-other-replacement
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -36,16 +37,17 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
pluginName: traefik-rewrite-response-headers-test
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
pluginName: traefik-rewrite-response-headers-test
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -60,66 +62,71 @@ tests:
|
||||
|
||||
- it: should fail with missing header
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- regex: some-regex
|
||||
replacement: some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- regex: some-regex
|
||||
replacement: some-replacement
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [header] to be set for rewrite [0]
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
replacement: some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
replacement: some-replacement
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [regex] to be set for rewrite [0]
|
||||
|
||||
- it: should fail with missing replacement
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [replacement] to be set for rewrite [0]
|
||||
|
||||
- it: should fail with missing rewrites
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be set
|
||||
|
||||
- it: should fail with invalid rewrites
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be a list, but got [string]
|
||||
|
||||
@@ -7,17 +7,18 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
baseUrl: https://example.com
|
||||
addons:
|
||||
- some-addon
|
||||
- some-other-addon
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
baseUrl: https://example.com
|
||||
addons:
|
||||
- some-addon
|
||||
- some-other-addon
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -34,14 +35,15 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
pluginName: traefik-themepark-test
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
pluginName: traefik-themepark-test
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -54,24 +56,26 @@ tests:
|
||||
|
||||
- it: should fail with missing app
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
theme: dark
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
theme: dark
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (themepark) - Expected [app] to be set
|
||||
|
||||
- it: should fail with missing theme
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (themepark) - Expected [theme] to be set
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
average: 1000
|
||||
burst: 2000
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
average: 1000
|
||||
burst: 2000
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -24,12 +25,13 @@ tests:
|
||||
burst: 2000
|
||||
- it: should fail with missing average and burst
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rate-limit) - Expected either [average] or [burst] to be set
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -30,40 +31,43 @@ tests:
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-regex) - Expected [regex] to be set
|
||||
|
||||
- it: should fail with missing replacement
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
permanent: true
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-regex) - Expected [replacement] to be set
|
||||
|
||||
- it: should fail with invalid permanent
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-regex) - Expected [permanent] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -28,25 +29,27 @@ tests:
|
||||
|
||||
- it: should fail with missing scheme
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
permanent: true
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-scheme) - Expected [scheme] to be set
|
||||
|
||||
- it: should fail with invalid permanent
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-scheme) - Expected [permanent] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
replacement: /some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
replacement: /some-replacement
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -28,24 +29,26 @@ tests:
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
replacement: /some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
replacement: /some-replacement
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (replace-path-regex) - Expected [regex] to be set
|
||||
|
||||
- it: should fail with missing replacement
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (replace-path-regex) - Expected [replacement] to be set
|
||||
|
||||
@@ -7,12 +7,13 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
path: /some-path
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
path: /some-path
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -26,12 +27,13 @@ tests:
|
||||
|
||||
- it: should fail with missing path
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (replace-path) - Expected [path] to be set
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
attempts: 3
|
||||
initialInterval: 1000
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
attempts: 3
|
||||
initialInterval: 1000
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -28,12 +29,13 @@ tests:
|
||||
|
||||
- it: should fail with missing attempts
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (retry) - Expected [attempts] to be set
|
||||
|
||||
@@ -7,15 +7,16 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
forceSlash: true
|
||||
prefix:
|
||||
- /some-prefix
|
||||
- /some-other-prefix
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
forceSlash: true
|
||||
prefix:
|
||||
- /some-prefix
|
||||
- /some-other-prefix
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -32,26 +33,28 @@ tests:
|
||||
|
||||
- it: should fail with missing prefix
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix: []
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix: []
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (strip-prefix) - Expected [prefix] to be set
|
||||
|
||||
- it: should fail with invalid forceSlash
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix:
|
||||
- /some-prefix
|
||||
forceSlash: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix:
|
||||
- /some-prefix
|
||||
forceSlash: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (strip-prefix) - Expected [forceSlash] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex:
|
||||
- some-regex
|
||||
- some-other-regex
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex:
|
||||
- some-regex
|
||||
- some-other-regex
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -30,12 +31,13 @@ tests:
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex: []
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex: []
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (strip-prefix-regex) - Expected [regex] to be set
|
||||
|
||||
@@ -7,23 +7,24 @@ release:
|
||||
tests:
|
||||
- it: should generate correct name
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware3:
|
||||
enabled: true
|
||||
type: buffering
|
||||
expandObjectName: false
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware3:
|
||||
enabled: true
|
||||
type: buffering
|
||||
expandObjectName: false
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,97 +7,105 @@ release:
|
||||
tests:
|
||||
- it: should fail with name longer than 253 characters
|
||||
set:
|
||||
middlewares:
|
||||
? 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
|
||||
: enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
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:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- 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.
|
||||
|
||||
- it: should fail with name starting with underscore
|
||||
set:
|
||||
middlewares:
|
||||
_my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
_my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- 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.
|
||||
|
||||
- it: should fail with namespace longer than 63 characters
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- 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.
|
||||
|
||||
- it: should fail with labels not a dict
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [labels] to be a dictionary, but got [string]
|
||||
|
||||
- it: should fail with annotations not a dict
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
annotations: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
annotations: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [annotations] to be a dictionary, but got [string]
|
||||
|
||||
- it: should fail with data not a dict
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data: "not a dict"
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data: "not a dict"
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [data] to be a dictionary, but got [string]
|
||||
|
||||
- it: should fail with empty enabled
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled:
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled:
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected the defined key [enabled] in [middlewares.my-middleware] to not be empty
|
||||
|
||||
- it: should fail with empty type
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type:
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type:
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [type] to be set
|
||||
|
||||
@@ -48,4 +48,4 @@ sources:
|
||||
- https://hub.docker.com/_/
|
||||
- https://hub.docker.com/r/mikefarah/yq
|
||||
type: library
|
||||
version: 25.4.15
|
||||
version: 25.5.0
|
||||
|
||||
@@ -5,8 +5,14 @@
|
||||
|
||||
{{- define "tc.v1.common.spawner.traefik.middleware" -}}
|
||||
{{- $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
|
||||
"rootCtx" $ "objectData" $middleware
|
||||
|
||||
@@ -235,19 +235,39 @@ credentials:
|
||||
# ## Is used in cases where things are encrypted by a backup utility
|
||||
# encrKey: ""
|
||||
|
||||
middlewares: {}
|
||||
# basic-auth:
|
||||
# type: basicAuth
|
||||
# data:
|
||||
# # middleware specific data ie
|
||||
# users:
|
||||
# - username: user1
|
||||
# password: password1
|
||||
# some-other-middleware:
|
||||
# type: someOtherMiddleware
|
||||
# data:
|
||||
# # middleware specific data ie
|
||||
# someOtherMiddlewareData: someOtherMiddlewareData
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
tc-basic-secure-headers:
|
||||
enabled: false
|
||||
type: headers
|
||||
data:
|
||||
accessControlAllowMethods:
|
||||
- GET
|
||||
- OPTIONS
|
||||
- HEAD
|
||||
- PUT
|
||||
accessControlMaxAge: 100
|
||||
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)
|
||||
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
|
||||
@@ -11,7 +11,7 @@ title: Middlewares
|
||||
|
||||
## Appears in
|
||||
|
||||
- `.Values.middlewares`
|
||||
- `.Values.ingressMiddlewares`
|
||||
|
||||
## Naming scheme
|
||||
|
||||
@@ -25,224 +25,240 @@ title: Middlewares
|
||||
|
||||
---
|
||||
|
||||
## `middlewares`
|
||||
## `ingressMiddlewares`
|
||||
|
||||
Create Middleware objects
|
||||
|
||||
| | |
|
||||
| ---------- | ------------- |
|
||||
| Key | `middlewares` |
|
||||
| Type | `map` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ❌ |
|
||||
| Default | `{}` |
|
||||
| | |
|
||||
| ---------- | -------------------- |
|
||||
| Key | `ingressMiddlewares` |
|
||||
| Type | `map` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ❌ |
|
||||
| Default | `{}` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares: {}
|
||||
ingressMiddlewares: {}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `$name`
|
||||
### `$provider`
|
||||
|
||||
Define Middleware
|
||||
|
||||
| | |
|
||||
| ---------- | ------------------- |
|
||||
| Key | `middlewares.$name` |
|
||||
| Type | `map` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ❌ |
|
||||
| Default | `{}` |
|
||||
:::note
|
||||
|
||||
- Available providers are:
|
||||
- [traefik](/common/middlewares/traefik)
|
||||
|
||||
:::
|
||||
|
||||
| | |
|
||||
| ---------- | ------------------------------ |
|
||||
| Key | `ingressMiddlewares.$provider` |
|
||||
| Type | `map` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ❌ |
|
||||
| Default | `{}` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name: {}
|
||||
ingressMiddlewares:
|
||||
traefik: {}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### `enabled`
|
||||
#### `$name`
|
||||
|
||||
Enables or Disables the Configmap
|
||||
Define Middleware
|
||||
|
||||
| | |
|
||||
| ---------- | ------------------------- |
|
||||
| Key | `configmap.$name.enabled` |
|
||||
| Type | `bool` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Default | `false` |
|
||||
| | |
|
||||
| ---------- | ------------------------------------ |
|
||||
| Key | `ingressMiddlewares.$provider.$name` |
|
||||
| Type | `map` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ❌ |
|
||||
| Default | `{}` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
enabled: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
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.
|
||||
|
||||
| | |
|
||||
| ---------- | ---------------------------------- |
|
||||
| Key | `configmap.$name.expandObjectName` |
|
||||
| Type | `bool` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Default | `true` |
|
||||
| | |
|
||||
| ---------- | ---------------------------------------------------- |
|
||||
| Key | `ingressMiddleware.$provider.$name.expandObjectName` |
|
||||
| Type | `bool` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Default | `true` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
expandObjectName: false
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
expandObjectName: false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### `namespace`
|
||||
##### `namespace`
|
||||
|
||||
Define the namespace for this object
|
||||
|
||||
| | |
|
||||
| ---------- | ----------------------------- |
|
||||
| Key | `middlewares.$name.namespace` |
|
||||
| Type | `string` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Default | `""` |
|
||||
| | |
|
||||
| ---------- | ---------------------------------------------- |
|
||||
| Key | `ingressMiddlewares.$provider.$name.namespace` |
|
||||
| Type | `string` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Default | `""` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
namespace: some-namespace
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
namespace: some-namespace
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### `type`
|
||||
|
||||
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`
|
||||
##### `labels`
|
||||
|
||||
Additional labels for middleware
|
||||
|
||||
| | |
|
||||
| ---------- | -------------------------- |
|
||||
| Key | `middlewares.$name.labels` |
|
||||
| Type | `map` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ✅ (On value only) |
|
||||
| Default | `{}` |
|
||||
| | |
|
||||
| ---------- | ------------------------------------------- |
|
||||
| Key | `ingressMiddlewares.$provider.$name.labels` |
|
||||
| Type | `map` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ✅ (On value only) |
|
||||
| Default | `{}` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
labels:
|
||||
key: value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
labels:
|
||||
key: value
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### `annotations`
|
||||
##### `annotations`
|
||||
|
||||
Additional annotations for middleware
|
||||
|
||||
| | |
|
||||
| ---------- | ------------------------------- |
|
||||
| Key | `middlewares.$name.annotations` |
|
||||
| Type | `map` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ✅ (On value only) |
|
||||
| Default | `{}` |
|
||||
| | |
|
||||
| ---------- | ------------------------------------------------ |
|
||||
| Key | `ingressMiddlewares.$provider.$name.annotations` |
|
||||
| Type | `map` |
|
||||
| Required | ❌ |
|
||||
| Helm `tpl` | ✅ (On value only) |
|
||||
| Default | `{}` |
|
||||
|
||||
Example
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
annotations:
|
||||
key: value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
annotations:
|
||||
key: value
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### `data`
|
||||
##### `data`
|
||||
|
||||
Define the data of the middleware
|
||||
|
||||
| | |
|
||||
| ---------- | ------------------------ |
|
||||
| Key | `middlewares.$name.data` |
|
||||
| Type | `map` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Example | `{}` |
|
||||
| | |
|
||||
| ---------- | ----------------------------------------- |
|
||||
| Key | `ingressMiddlewares.$provider.$name.data` |
|
||||
| Type | `map` |
|
||||
| Required | ✅ |
|
||||
| Helm `tpl` | ✅ |
|
||||
| Example | `{}` |
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
data:
|
||||
key: value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
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
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
enabled: true
|
||||
type: buffering
|
||||
expandObjectName: false
|
||||
labels:
|
||||
key: value
|
||||
keytpl: "{{ .Values.some.value }}"
|
||||
annotations:
|
||||
key: value
|
||||
keytpl: "{{ .Values.some.value }}"
|
||||
data:
|
||||
key: value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
enabled: true
|
||||
type: buffering
|
||||
expandObjectName: false
|
||||
labels:
|
||||
key: value
|
||||
keytpl: "{{ .Values.some.value }}"
|
||||
annotations:
|
||||
key: value
|
||||
keytpl: "{{ .Values.some.value }}"
|
||||
data:
|
||||
key: value
|
||||
|
||||
other-middleware-name:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: some-namespace
|
||||
data:
|
||||
key: value
|
||||
other-middleware-name:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: some-namespace
|
||||
data:
|
||||
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
|
||||
```
|
||||
+7
-6
@@ -5,14 +5,14 @@ title: Compress Middleware
|
||||
:::note
|
||||
|
||||
- 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)
|
||||
|
||||
:::
|
||||
|
||||
## Appears in
|
||||
|
||||
- `.Values.middlewares.$name.data`
|
||||
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||
|
||||
:::tip
|
||||
|
||||
@@ -26,8 +26,9 @@ title: Compress Middleware
|
||||
## Full Examples
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
enabled: true
|
||||
type: compress
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
enabled: true
|
||||
type: compress
|
||||
```
|
||||
+7
-6
@@ -5,14 +5,14 @@ title: Content Type Middleware
|
||||
:::note
|
||||
|
||||
- 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)
|
||||
|
||||
:::
|
||||
|
||||
## Appears in
|
||||
|
||||
- `.Values.middlewares.$name.data`
|
||||
- `.Values.ingressMiddlewares.$name.data`
|
||||
|
||||
:::tip
|
||||
|
||||
@@ -26,8 +26,9 @@ title: Content Type Middleware
|
||||
## Full Examples
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
middleware-name:
|
||||
enabled: true
|
||||
type: content-type
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
middleware-name:
|
||||
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
|
||||
```
|
||||
+169
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user