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
|
appVersion: unknown
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: common
|
- name: common
|
||||||
version: ~25.4.0
|
version: ~25.5.0
|
||||||
repository: file://../common/
|
repository: file://../common/
|
||||||
condition: ""
|
condition: ""
|
||||||
alias: ""
|
alias: ""
|
||||||
|
|||||||
@@ -20,18 +20,19 @@ tests:
|
|||||||
annotations:
|
annotations:
|
||||||
g_annotation1: global_annotation1
|
g_annotation1: global_annotation1
|
||||||
g_annotation2: "{{ .Values.annotation2 }}"
|
g_annotation2: "{{ .Values.annotation2 }}"
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
labels:
|
type: buffering
|
||||||
label1: "{{ .Values.label1 }}"
|
labels:
|
||||||
label2: label2
|
label1: "{{ .Values.label1 }}"
|
||||||
annotations:
|
label2: label2
|
||||||
annotation1: "{{ .Values.annotation1 }}"
|
annotations:
|
||||||
annotation2: annotation2
|
annotation1: "{{ .Values.annotation1 }}"
|
||||||
data:
|
annotation2: annotation2
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -67,13 +68,14 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with middlewares created with namespace
|
- it: should pass with middlewares created with namespace
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
namespace: some-namespace
|
type: buffering
|
||||||
data:
|
namespace: some-namespace
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -83,13 +85,14 @@ tests:
|
|||||||
- it: should pass with middlewares created with object namespace from tpl
|
- it: should pass with middlewares created with object namespace from tpl
|
||||||
set:
|
set:
|
||||||
key: some-namespace
|
key: some-namespace
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
namespace: "{{ .Values.key }}"
|
type: buffering
|
||||||
data:
|
namespace: "{{ .Values.key }}"
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -101,12 +104,13 @@ tests:
|
|||||||
key: global-namespace
|
key: global-namespace
|
||||||
global:
|
global:
|
||||||
namespace: "{{ .Values.key }}"
|
namespace: "{{ .Values.key }}"
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -119,12 +123,13 @@ tests:
|
|||||||
namespace: "{{ .Values.key }}"
|
namespace: "{{ .Values.key }}"
|
||||||
global:
|
global:
|
||||||
namespace: global-namespace
|
namespace: global-namespace
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: add-prefix
|
enabled: true
|
||||||
data:
|
type: add-prefix
|
||||||
prefix: some-prefix
|
data:
|
||||||
|
prefix: some-prefix
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -26,12 +27,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing prefix
|
- it: should fail with missing prefix
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: add-prefix
|
enabled: true
|
||||||
data:
|
type: add-prefix
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (add-prefix) - Expected [prefix] to be set
|
errorMessage: Middleware (add-prefix) - Expected [prefix] to be set
|
||||||
|
|||||||
@@ -7,21 +7,22 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: basic-auth
|
enabled: true
|
||||||
data:
|
type: basic-auth
|
||||||
secret: some-secret
|
data:
|
||||||
my-middleware2:
|
secret: some-secret
|
||||||
enabled: true
|
my-middleware2:
|
||||||
type: basic-auth
|
enabled: true
|
||||||
data:
|
type: basic-auth
|
||||||
users:
|
data:
|
||||||
- username: some-username
|
users:
|
||||||
password: some-password
|
- username: some-username
|
||||||
- username: some-other-username
|
password: some-password
|
||||||
password: some-other-password
|
- username: some-other-username
|
||||||
|
password: some-other-password
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -55,27 +56,29 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing both users and secret
|
- it: should fail with missing both users and secret
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: basic-auth
|
enabled: true
|
||||||
data:
|
type: basic-auth
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set
|
errorMessage: Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set
|
||||||
|
|
||||||
- it: should fail with both secret and users set
|
- it: should fail with both secret and users set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: basic-auth
|
enabled: true
|
||||||
data:
|
type: basic-auth
|
||||||
secret: some-secret
|
data:
|
||||||
users:
|
secret: some-secret
|
||||||
- username: some-username
|
users:
|
||||||
password: some-password
|
- username: some-username
|
||||||
|
password: some-password
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both
|
errorMessage: Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both
|
||||||
|
|||||||
@@ -7,16 +7,17 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
maxRequestBodyBytes: 1024
|
data:
|
||||||
memRequestBodyBytes: 1024
|
maxRequestBodyBytes: 1024
|
||||||
maxResponseBodyBytes: 1024
|
memRequestBodyBytes: 1024
|
||||||
memResponseBodyBytes: 1024
|
maxResponseBodyBytes: 1024
|
||||||
retryExpression: some-expression
|
memResponseBodyBytes: 1024
|
||||||
|
retryExpression: some-expression
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -34,12 +35,13 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with only maxRequestBodyBytes set
|
- it: should pass with only maxRequestBodyBytes set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
maxRequestBodyBytes: 1024
|
data:
|
||||||
|
maxRequestBodyBytes: 1024
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -50,16 +52,17 @@ tests:
|
|||||||
|
|
||||||
- it: should render 0 and non-null values
|
- it: should render 0 and non-null values
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
maxRequestBodyBytes: 0
|
data:
|
||||||
memRequestBodyBytes: null
|
maxRequestBodyBytes: 0
|
||||||
maxResponseBodyBytes: 1024
|
memRequestBodyBytes: null
|
||||||
memResponseBodyBytes: 1024
|
maxResponseBodyBytes: 1024
|
||||||
retryExpression: ""
|
memResponseBodyBytes: 1024
|
||||||
|
retryExpression: ""
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: chain
|
enabled: true
|
||||||
data:
|
type: chain
|
||||||
middlewares:
|
data:
|
||||||
- name: some-name
|
middlewares:
|
||||||
expandObjectName: false
|
- name: some-name
|
||||||
- name: some-other-name
|
expandObjectName: false
|
||||||
|
- name: some-other-name
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -31,12 +32,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing middlewares
|
- it: should fail with missing middlewares
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: chain
|
enabled: true
|
||||||
data:
|
type: chain
|
||||||
middlewares: []
|
data:
|
||||||
|
middlewares: []
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (chain) - Expected [middlewares] to be set
|
errorMessage: Middleware (chain) - Expected [middlewares] to be set
|
||||||
|
|||||||
@@ -7,10 +7,11 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: compress
|
enabled: true
|
||||||
|
type: compress
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
|
|||||||
@@ -7,10 +7,11 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: content-type
|
enabled: true
|
||||||
|
type: content-type
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
|
|||||||
@@ -7,20 +7,21 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with values
|
- it: should pass with values
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: forward-auth
|
enabled: true
|
||||||
data:
|
type: forward-auth
|
||||||
address: some-address
|
data:
|
||||||
authResponseHeadersRegex: some-regex
|
address: some-address
|
||||||
trustForwardHeader: true
|
authResponseHeadersRegex: some-regex
|
||||||
authResponseHeaders:
|
trustForwardHeader: true
|
||||||
- some-header
|
authResponseHeaders:
|
||||||
authRequestHeaders:
|
- some-header
|
||||||
- some-header
|
authRequestHeaders:
|
||||||
tls:
|
- some-header
|
||||||
insecureSkipVerify: true
|
tls:
|
||||||
|
insecureSkipVerify: true
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -42,65 +43,70 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing address
|
- it: should fail with missing address
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: forward-auth
|
enabled: true
|
||||||
data:
|
type: forward-auth
|
||||||
authResponseHeadersRegex: some-regex
|
data:
|
||||||
|
authResponseHeadersRegex: some-regex
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (forward-auth) - Expected [address] to be set
|
errorMessage: Middleware (forward-auth) - Expected [address] to be set
|
||||||
|
|
||||||
- it: should fail with invalid authResponseHeaders
|
- it: should fail with invalid authResponseHeaders
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: forward-auth
|
enabled: true
|
||||||
data:
|
type: forward-auth
|
||||||
address: some-address
|
data:
|
||||||
authResponseHeaders: some-header
|
address: some-address
|
||||||
|
authResponseHeaders: some-header
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (forward-auth) - Expected [authResponseHeaders] to be a list, but got [string]
|
errorMessage: Middleware (forward-auth) - Expected [authResponseHeaders] to be a list, but got [string]
|
||||||
|
|
||||||
- it: should fail with invalid authRequestHeaders
|
- it: should fail with invalid authRequestHeaders
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: forward-auth
|
enabled: true
|
||||||
data:
|
type: forward-auth
|
||||||
address: some-address
|
data:
|
||||||
authRequestHeaders: some-header
|
address: some-address
|
||||||
|
authRequestHeaders: some-header
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (forward-auth) - Expected [authRequestHeaders] to be a list, but got [string]
|
errorMessage: Middleware (forward-auth) - Expected [authRequestHeaders] to be a list, but got [string]
|
||||||
|
|
||||||
- it: should fail with invalid tls.insecureSkipVerify
|
- it: should fail with invalid tls.insecureSkipVerify
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: forward-auth
|
enabled: true
|
||||||
data:
|
type: forward-auth
|
||||||
address: some-address
|
data:
|
||||||
tls:
|
address: some-address
|
||||||
insecureSkipVerify: some-value
|
tls:
|
||||||
|
insecureSkipVerify: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (forward-auth) - Expected [tls.insecureSkipVerify] to be a boolean, but got [string]
|
errorMessage: Middleware (forward-auth) - Expected [tls.insecureSkipVerify] to be a boolean, but got [string]
|
||||||
|
|
||||||
- it: should fail with invalid trustForwardHeader
|
- it: should fail with invalid trustForwardHeader
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: forward-auth
|
enabled: true
|
||||||
data:
|
type: forward-auth
|
||||||
address: some-address
|
data:
|
||||||
trustForwardHeader: some-value
|
address: some-address
|
||||||
|
trustForwardHeader: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (forward-auth) - Expected [trustForwardHeader] to be a boolean, but got [string]
|
errorMessage: Middleware (forward-auth) - Expected [trustForwardHeader] to be a boolean, but got [string]
|
||||||
|
|||||||
@@ -7,59 +7,60 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: headers
|
enabled: true
|
||||||
data:
|
type: headers
|
||||||
customRequestHeaders:
|
data:
|
||||||
some-name: some-value
|
customRequestHeaders:
|
||||||
some-other-name: some-other-value
|
some-name: some-value
|
||||||
customResponseHeaders:
|
some-other-name: some-other-value
|
||||||
some-name: some-value
|
customResponseHeaders:
|
||||||
some-other-name: some-other-value
|
some-name: some-value
|
||||||
accessControlAllowCredentials: true
|
some-other-name: some-other-value
|
||||||
accessControlAllowHeaders:
|
accessControlAllowCredentials: true
|
||||||
- some-header
|
accessControlAllowHeaders:
|
||||||
- some-other-header
|
- some-header
|
||||||
accessControlAllowMethods:
|
- some-other-header
|
||||||
- GET
|
accessControlAllowMethods:
|
||||||
- DELETE
|
- GET
|
||||||
accessControlAllowOriginList:
|
- DELETE
|
||||||
- some-origin
|
accessControlAllowOriginList:
|
||||||
- some-other-origin
|
- some-origin
|
||||||
accessControlAllowOriginListRegex:
|
- some-other-origin
|
||||||
- some-origin-regex
|
accessControlAllowOriginListRegex:
|
||||||
- some-other-origin-regex
|
- some-origin-regex
|
||||||
accessControlExposeHeaders:
|
- some-other-origin-regex
|
||||||
- some-header
|
accessControlExposeHeaders:
|
||||||
- some-other-header
|
- some-header
|
||||||
accessControlMaxAge: 1000
|
- some-other-header
|
||||||
addVaryHeader: true
|
accessControlMaxAge: 1000
|
||||||
allowedHosts:
|
addVaryHeader: true
|
||||||
- some-host
|
allowedHosts:
|
||||||
- some-other-host
|
- some-host
|
||||||
hostsProxyHeaders:
|
- some-other-host
|
||||||
- some-header
|
hostsProxyHeaders:
|
||||||
- some-other-header
|
- some-header
|
||||||
sslProxyHeaders:
|
- some-other-header
|
||||||
some-header: some-value
|
sslProxyHeaders:
|
||||||
some-other-header: some-other-value
|
some-header: some-value
|
||||||
stsSeconds: 1000
|
some-other-header: some-other-value
|
||||||
stsIncludeSubdomains: true
|
stsSeconds: 1000
|
||||||
stsPreload: true
|
stsIncludeSubdomains: true
|
||||||
forceSTSHeader: true
|
stsPreload: true
|
||||||
frameDeny: true
|
forceSTSHeader: true
|
||||||
customFrameOptionsValue: some-value
|
frameDeny: true
|
||||||
contentTypeNosniff: true
|
customFrameOptionsValue: some-value
|
||||||
browserXssFilter: true
|
contentTypeNosniff: true
|
||||||
customBrowserXSSValue: some-value
|
browserXssFilter: true
|
||||||
contentSecurityPolicy: some-value
|
customBrowserXSSValue: some-value
|
||||||
contentSecurityPolicyReportOnly: true
|
contentSecurityPolicy: some-value
|
||||||
publicKey: some-public-key
|
contentSecurityPolicyReportOnly: true
|
||||||
referrerPolicy: some-referrer-policy
|
publicKey: some-public-key
|
||||||
permissionsPolicy: some-permissions-policy
|
referrerPolicy: some-referrer-policy
|
||||||
isDevelopment: true
|
permissionsPolicy: some-permissions-policy
|
||||||
|
isDevelopment: true
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
|
|||||||
@@ -7,17 +7,18 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: ip-allow-list
|
enabled: true
|
||||||
data:
|
type: ip-allow-list
|
||||||
sourceRange:
|
data:
|
||||||
- some-source-range
|
sourceRange:
|
||||||
ipStrategy:
|
- some-source-range
|
||||||
depth: 1
|
ipStrategy:
|
||||||
excludedIPs:
|
depth: 1
|
||||||
- some-excluded-ip
|
excludedIPs:
|
||||||
|
- some-excluded-ip
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -36,27 +37,29 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with invalid sourceRange
|
- it: should fail with invalid sourceRange
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: ip-allow-list
|
enabled: true
|
||||||
data:
|
type: ip-allow-list
|
||||||
sourceRange: some-source-range
|
data:
|
||||||
|
sourceRange: some-source-range
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (ip-allow-list) - Expected [sourceRange] to be a list, but got [string]
|
errorMessage: Middleware (ip-allow-list) - Expected [sourceRange] to be a list, but got [string]
|
||||||
|
|
||||||
- it: should fail with invalid ipStrategy.excludedIPs
|
- it: should fail with invalid ipStrategy.excludedIPs
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: ip-allow-list
|
enabled: true
|
||||||
data:
|
type: ip-allow-list
|
||||||
sourceRange:
|
data:
|
||||||
- some-source-range
|
sourceRange:
|
||||||
ipStrategy:
|
- some-source-range
|
||||||
excludedIPs: some-excluded-ip
|
ipStrategy:
|
||||||
|
excludedIPs: some-excluded-ip
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (ip-allow-list) - Expected [ipStrategy.excludedIPs] to be a list, but got [string]
|
errorMessage: Middleware (ip-allow-list) - Expected [ipStrategy.excludedIPs] to be a list, but got [string]
|
||||||
|
|||||||
@@ -7,68 +7,69 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-bouncer
|
|
||||||
data:
|
|
||||||
enabled: true
|
enabled: true
|
||||||
logLevel: DEBUG
|
type: plugin-bouncer
|
||||||
updateIntervalSeconds: 60
|
data:
|
||||||
updateMaxFailure: 0
|
enabled: true
|
||||||
defaultDecisionSeconds: 60
|
logLevel: DEBUG
|
||||||
httpTimeoutSeconds: 10
|
updateIntervalSeconds: 60
|
||||||
crowdsecMode: live
|
updateMaxFailure: 0
|
||||||
crowdsecAppsecEnabled: false
|
defaultDecisionSeconds: 60
|
||||||
crowdsecAppsecHost: crowdsec:7422
|
httpTimeoutSeconds: 10
|
||||||
crowdsecAppsecFailureBlock: true
|
crowdsecMode: live
|
||||||
crowdsecAppsecUnreachableBlock: true
|
crowdsecAppsecEnabled: false
|
||||||
crowdsecLapiKey: privateKey-foo
|
crowdsecAppsecHost: crowdsec:7422
|
||||||
crowdsecLapiHost: crowdsec:8080
|
crowdsecAppsecFailureBlock: true
|
||||||
crowdsecLapiScheme: http
|
crowdsecAppsecUnreachableBlock: true
|
||||||
crowdsecLapiTLSInsecureVerify: false
|
crowdsecLapiKey: privateKey-foo
|
||||||
crowdsecCapiMachineId: login
|
crowdsecLapiHost: crowdsec:8080
|
||||||
crowdsecCapiPassword: password
|
crowdsecLapiScheme: http
|
||||||
crowdsecCapiScenarios:
|
crowdsecLapiTLSInsecureVerify: false
|
||||||
- crowdsecurity/http-path-traversal-probing
|
crowdsecCapiMachineId: login
|
||||||
- crowdsecurity/http-xss-probing
|
crowdsecCapiPassword: password
|
||||||
- crowdsecurity/http-generic-bf
|
crowdsecCapiScenarios:
|
||||||
forwardedHeadersTrustedIPs:
|
- crowdsecurity/http-path-traversal-probing
|
||||||
- 10.0.10.23/32
|
- crowdsecurity/http-xss-probing
|
||||||
- 10.0.20.0/24
|
- crowdsecurity/http-generic-bf
|
||||||
clientTrustedIPs:
|
forwardedHeadersTrustedIPs:
|
||||||
- 192.168.1.0/24
|
- 10.0.10.23/32
|
||||||
forwardedHeadersCustomName: X-Custom-Header
|
- 10.0.20.0/24
|
||||||
remediationHeadersCustomName: cs-remediation
|
clientTrustedIPs:
|
||||||
redisCacheEnabled: false
|
- 192.168.1.0/24
|
||||||
redisCacheHost: "redis:6379"
|
forwardedHeadersCustomName: X-Custom-Header
|
||||||
redisCachePassword: password
|
remediationHeadersCustomName: cs-remediation
|
||||||
redisCacheDatabase: "5"
|
redisCacheEnabled: false
|
||||||
crowdsecLapiTLSCertificateAuthority: |-
|
redisCacheHost: "redis:6379"
|
||||||
-----BEGIN TOTALY NOT A CERT-----
|
redisCachePassword: password
|
||||||
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
redisCacheDatabase: "5"
|
||||||
...
|
crowdsecLapiTLSCertificateAuthority: |-
|
||||||
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
-----BEGIN TOTALY NOT A CERT-----
|
||||||
-----END TOTALY NOT A CERT-----
|
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
||||||
crowdsecLapiTLSCertificateBouncer: |-
|
...
|
||||||
-----BEGIN TOTALY NOT A CERT-----
|
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
||||||
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
-----END TOTALY NOT A CERT-----
|
||||||
...
|
crowdsecLapiTLSCertificateBouncer: |-
|
||||||
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
-----BEGIN TOTALY NOT A CERT-----
|
||||||
N2U=
|
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
||||||
-----END TOTALY NOT A CERT-----
|
...
|
||||||
crowdsecLapiTLSCertificateBouncerKey: |-
|
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
||||||
-----BEGIN TOTALY NOT A SECRET-----
|
N2U=
|
||||||
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
-----END TOTALY NOT A CERT-----
|
||||||
...
|
crowdsecLapiTLSCertificateBouncerKey: |-
|
||||||
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
-----BEGIN TOTALY NOT A SECRET-----
|
||||||
-----END TOTALY NOT A SECRET-----
|
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
||||||
captchaProvider: hcaptcha
|
...
|
||||||
captchaSiteKey: FIXME
|
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
||||||
captchaSecretKey: FIXME
|
-----END TOTALY NOT A SECRET-----
|
||||||
captchaGracePeriodSeconds: 1800
|
captchaProvider: hcaptcha
|
||||||
captchaHTMLFilePath: /captcha.html
|
captchaSiteKey: FIXME
|
||||||
banHTMLFilePath: /ban.html
|
captchaSecretKey: FIXME
|
||||||
|
captchaGracePeriodSeconds: 1800
|
||||||
|
captchaHTMLFilePath: /captcha.html
|
||||||
|
banHTMLFilePath: /ban.html
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -136,13 +137,14 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with pluginName set
|
- it: should pass with pluginName set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-bouncer
|
|
||||||
data:
|
|
||||||
pluginName: traefik-bouncer-test
|
|
||||||
enabled: true
|
enabled: true
|
||||||
|
type: plugin-bouncer
|
||||||
|
data:
|
||||||
|
pluginName: traefik-bouncer-test
|
||||||
|
enabled: true
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -154,24 +156,26 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing enabled
|
- it: should fail with missing enabled
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-bouncer
|
enabled: true
|
||||||
data:
|
type: plugin-bouncer
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be set
|
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be set
|
||||||
|
|
||||||
- it: should fail with invalid enabled
|
- it: should fail with invalid enabled
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-bouncer
|
enabled: true
|
||||||
data:
|
type: plugin-bouncer
|
||||||
enabled: some-value
|
data:
|
||||||
|
enabled: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be a boolean, but got [string]
|
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be a boolean, but got [string]
|
||||||
|
|||||||
@@ -7,27 +7,28 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-geoblock
|
enabled: true
|
||||||
data:
|
type: plugin-geoblock
|
||||||
api: https://api.geoblock.org/v2/geoblock
|
data:
|
||||||
allowLocalRequests: true
|
api: https://api.geoblock.org/v2/geoblock
|
||||||
logLocalRequests: true
|
allowLocalRequests: true
|
||||||
logAllowedRequests: true
|
logLocalRequests: true
|
||||||
logApiRequests: true
|
logAllowedRequests: true
|
||||||
apiTimeoutMs: 1000
|
logApiRequests: true
|
||||||
cacheSize: 1000
|
apiTimeoutMs: 1000
|
||||||
forceMonthlyUpdate: true
|
cacheSize: 1000
|
||||||
allowUnknownCountries: true
|
forceMonthlyUpdate: true
|
||||||
unknownCountryApiResponse: some-value
|
allowUnknownCountries: true
|
||||||
blackListMode: true
|
unknownCountryApiResponse: some-value
|
||||||
silentStartUp: true
|
blackListMode: true
|
||||||
addCountryHeader: true
|
silentStartUp: true
|
||||||
countries:
|
addCountryHeader: true
|
||||||
- some-country
|
countries:
|
||||||
- some-other-country
|
- some-country
|
||||||
|
- some-other-country
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -54,16 +55,17 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with pluginName set
|
- it: should pass with pluginName set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-geoblock
|
enabled: true
|
||||||
data:
|
type: plugin-geoblock
|
||||||
pluginName: traefik-geoblock-test
|
data:
|
||||||
api: https://api.geoblock.org/v2/geoblock
|
pluginName: traefik-geoblock-test
|
||||||
countries:
|
api: https://api.geoblock.org/v2/geoblock
|
||||||
- some-country
|
countries:
|
||||||
- some-other-country
|
- some-country
|
||||||
|
- some-other-country
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -78,24 +80,26 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing api
|
- it: should fail with missing api
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-geoblock
|
enabled: true
|
||||||
data:
|
type: plugin-geoblock
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (plugin-geoblock) - Expected [api] to be set
|
errorMessage: Middleware (plugin-geoblock) - Expected [api] to be set
|
||||||
|
|
||||||
- it: should fail with missing countries
|
- it: should fail with missing countries
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-geoblock
|
enabled: true
|
||||||
data:
|
type: plugin-geoblock
|
||||||
api: https://api.geoblock.org/v2/geoblock
|
data:
|
||||||
|
api: https://api.geoblock.org/v2/geoblock
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (plugin-geoblock) - Expected [countries] to be set
|
errorMessage: Middleware (plugin-geoblock) - Expected [countries] to be set
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-mod-security
|
enabled: true
|
||||||
data:
|
type: plugin-mod-security
|
||||||
modSecurityUrl: some-url
|
data:
|
||||||
timeoutMillis: 1000
|
modSecurityUrl: some-url
|
||||||
maxBodySize: 1024
|
timeoutMillis: 1000
|
||||||
|
maxBodySize: 1024
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -28,13 +29,14 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with pluginName set
|
- it: should pass with pluginName set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-mod-security
|
enabled: true
|
||||||
data:
|
type: plugin-mod-security
|
||||||
pluginName: traefik-mod-security-test
|
data:
|
||||||
modSecurityUrl: some-url
|
pluginName: traefik-mod-security-test
|
||||||
|
modSecurityUrl: some-url
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -46,12 +48,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing modSecurityUrl
|
- it: should fail with missing modSecurityUrl
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-mod-security
|
enabled: true
|
||||||
data:
|
type: plugin-mod-security
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (modsecurity) - Expected [modSecurityUrl] to be set
|
errorMessage: Middleware (modsecurity) - Expected [modSecurityUrl] to be set
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-real-ip
|
enabled: true
|
||||||
data:
|
type: plugin-real-ip
|
||||||
excludednets:
|
data:
|
||||||
- some-excluded-net
|
excludednets:
|
||||||
- some-other-excluded-net
|
- some-excluded-net
|
||||||
|
- some-other-excluded-net
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -28,15 +29,16 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with pluginName set
|
- it: should pass with pluginName set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-real-ip
|
enabled: true
|
||||||
data:
|
type: plugin-real-ip
|
||||||
pluginName: traefik-real-ip-test
|
data:
|
||||||
excludednets:
|
pluginName: traefik-real-ip-test
|
||||||
- some-excluded-net
|
excludednets:
|
||||||
- some-other-excluded-net
|
- some-excluded-net
|
||||||
|
- some-other-excluded-net
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -50,12 +52,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing excludednets
|
- it: should fail with missing excludednets
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-real-ip
|
enabled: true
|
||||||
data:
|
type: plugin-real-ip
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (real-ip) - Expected [excludednets] to be set
|
errorMessage: Middleware (real-ip) - Expected [excludednets] to be set
|
||||||
|
|||||||
+65
-58
@@ -7,18 +7,19 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
rewrites:
|
data:
|
||||||
- header: some-header
|
rewrites:
|
||||||
regex: some-regex
|
- header: some-header
|
||||||
replacement: some-replacement
|
regex: some-regex
|
||||||
- header: some-other-header
|
replacement: some-replacement
|
||||||
regex: some-other-regex
|
- header: some-other-header
|
||||||
replacement: some-other-replacement
|
regex: some-other-regex
|
||||||
|
replacement: some-other-replacement
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -36,16 +37,17 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with pluginName set
|
- it: should pass with pluginName set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
pluginName: traefik-rewrite-response-headers-test
|
data:
|
||||||
rewrites:
|
pluginName: traefik-rewrite-response-headers-test
|
||||||
- header: some-header
|
rewrites:
|
||||||
regex: some-regex
|
- header: some-header
|
||||||
replacement: some-replacement
|
regex: some-regex
|
||||||
|
replacement: some-replacement
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -60,66 +62,71 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing header
|
- it: should fail with missing header
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
rewrites:
|
data:
|
||||||
- regex: some-regex
|
rewrites:
|
||||||
replacement: some-replacement
|
- regex: some-regex
|
||||||
|
replacement: some-replacement
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (rewrite-response-headers) - Expected [header] to be set for rewrite [0]
|
errorMessage: Middleware (rewrite-response-headers) - Expected [header] to be set for rewrite [0]
|
||||||
|
|
||||||
- it: should fail with missing regex
|
- it: should fail with missing regex
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
rewrites:
|
data:
|
||||||
- header: some-header
|
rewrites:
|
||||||
replacement: some-replacement
|
- header: some-header
|
||||||
|
replacement: some-replacement
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (rewrite-response-headers) - Expected [regex] to be set for rewrite [0]
|
errorMessage: Middleware (rewrite-response-headers) - Expected [regex] to be set for rewrite [0]
|
||||||
|
|
||||||
- it: should fail with missing replacement
|
- it: should fail with missing replacement
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
rewrites:
|
data:
|
||||||
- header: some-header
|
rewrites:
|
||||||
regex: some-regex
|
- header: some-header
|
||||||
|
regex: some-regex
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (rewrite-response-headers) - Expected [replacement] to be set for rewrite [0]
|
errorMessage: Middleware (rewrite-response-headers) - Expected [replacement] to be set for rewrite [0]
|
||||||
|
|
||||||
- it: should fail with missing rewrites
|
- it: should fail with missing rewrites
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be set
|
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be set
|
||||||
|
|
||||||
- it: should fail with invalid rewrites
|
- it: should fail with invalid rewrites
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-rewrite-response-headers
|
enabled: true
|
||||||
data:
|
type: plugin-rewrite-response-headers
|
||||||
rewrites: some-value
|
data:
|
||||||
|
rewrites: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be a list, but got [string]
|
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be a list, but got [string]
|
||||||
|
|||||||
@@ -7,17 +7,18 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-theme-park
|
enabled: true
|
||||||
data:
|
type: plugin-theme-park
|
||||||
app: sonarr
|
data:
|
||||||
theme: dark
|
app: sonarr
|
||||||
baseUrl: https://example.com
|
theme: dark
|
||||||
addons:
|
baseUrl: https://example.com
|
||||||
- some-addon
|
addons:
|
||||||
- some-other-addon
|
- some-addon
|
||||||
|
- some-other-addon
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -34,14 +35,15 @@ tests:
|
|||||||
|
|
||||||
- it: should pass with pluginName set
|
- it: should pass with pluginName set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-theme-park
|
enabled: true
|
||||||
data:
|
type: plugin-theme-park
|
||||||
app: sonarr
|
data:
|
||||||
theme: dark
|
app: sonarr
|
||||||
pluginName: traefik-themepark-test
|
theme: dark
|
||||||
|
pluginName: traefik-themepark-test
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: *middlewareDoc
|
- documentIndex: *middlewareDoc
|
||||||
equal:
|
equal:
|
||||||
@@ -54,24 +56,26 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing app
|
- it: should fail with missing app
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-theme-park
|
enabled: true
|
||||||
data:
|
type: plugin-theme-park
|
||||||
theme: dark
|
data:
|
||||||
|
theme: dark
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (themepark) - Expected [app] to be set
|
errorMessage: Middleware (themepark) - Expected [app] to be set
|
||||||
|
|
||||||
- it: should fail with missing theme
|
- it: should fail with missing theme
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: plugin-theme-park
|
enabled: true
|
||||||
data:
|
type: plugin-theme-park
|
||||||
app: sonarr
|
data:
|
||||||
|
app: sonarr
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (themepark) - Expected [theme] to be set
|
errorMessage: Middleware (themepark) - Expected [theme] to be set
|
||||||
|
|||||||
@@ -7,13 +7,14 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: rate-limit
|
enabled: true
|
||||||
data:
|
type: rate-limit
|
||||||
average: 1000
|
data:
|
||||||
burst: 2000
|
average: 1000
|
||||||
|
burst: 2000
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
equal:
|
equal:
|
||||||
@@ -24,12 +25,13 @@ tests:
|
|||||||
burst: 2000
|
burst: 2000
|
||||||
- it: should fail with missing average and burst
|
- it: should fail with missing average and burst
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: rate-limit
|
enabled: true
|
||||||
data:
|
type: rate-limit
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (rate-limit) - Expected either [average] or [burst] to be set
|
errorMessage: Middleware (rate-limit) - Expected either [average] or [burst] to be set
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-regex
|
enabled: true
|
||||||
data:
|
type: redirect-regex
|
||||||
regex: some-regex
|
data:
|
||||||
replacement: some-replacement
|
regex: some-regex
|
||||||
permanent: true
|
replacement: some-replacement
|
||||||
|
permanent: true
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -30,40 +31,43 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing regex
|
- it: should fail with missing regex
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-regex
|
enabled: true
|
||||||
data:
|
type: redirect-regex
|
||||||
replacement: some-replacement
|
data:
|
||||||
permanent: true
|
replacement: some-replacement
|
||||||
|
permanent: true
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (redirect-regex) - Expected [regex] to be set
|
errorMessage: Middleware (redirect-regex) - Expected [regex] to be set
|
||||||
|
|
||||||
- it: should fail with missing replacement
|
- it: should fail with missing replacement
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-regex
|
enabled: true
|
||||||
data:
|
type: redirect-regex
|
||||||
regex: some-regex
|
data:
|
||||||
permanent: true
|
regex: some-regex
|
||||||
|
permanent: true
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (redirect-regex) - Expected [replacement] to be set
|
errorMessage: Middleware (redirect-regex) - Expected [replacement] to be set
|
||||||
|
|
||||||
- it: should fail with invalid permanent
|
- it: should fail with invalid permanent
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-regex
|
enabled: true
|
||||||
data:
|
type: redirect-regex
|
||||||
regex: some-regex
|
data:
|
||||||
replacement: some-replacement
|
regex: some-regex
|
||||||
permanent: some-value
|
replacement: some-replacement
|
||||||
|
permanent: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (redirect-regex) - Expected [permanent] to be a boolean, but got [string]
|
errorMessage: Middleware (redirect-regex) - Expected [permanent] to be a boolean, but got [string]
|
||||||
|
|||||||
@@ -7,13 +7,14 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-scheme
|
enabled: true
|
||||||
data:
|
type: redirect-scheme
|
||||||
scheme: https
|
data:
|
||||||
permanent: true
|
scheme: https
|
||||||
|
permanent: true
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -28,25 +29,27 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing scheme
|
- it: should fail with missing scheme
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-scheme
|
enabled: true
|
||||||
data:
|
type: redirect-scheme
|
||||||
permanent: true
|
data:
|
||||||
|
permanent: true
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (redirect-scheme) - Expected [scheme] to be set
|
errorMessage: Middleware (redirect-scheme) - Expected [scheme] to be set
|
||||||
|
|
||||||
- it: should fail with invalid permanent
|
- it: should fail with invalid permanent
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: redirect-scheme
|
enabled: true
|
||||||
data:
|
type: redirect-scheme
|
||||||
scheme: https
|
data:
|
||||||
permanent: some-value
|
scheme: https
|
||||||
|
permanent: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (redirect-scheme) - Expected [permanent] to be a boolean, but got [string]
|
errorMessage: Middleware (redirect-scheme) - Expected [permanent] to be a boolean, but got [string]
|
||||||
|
|||||||
@@ -7,13 +7,14 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: replace-path-regex
|
enabled: true
|
||||||
data:
|
type: replace-path-regex
|
||||||
regex: /some-path
|
data:
|
||||||
replacement: /some-replacement
|
regex: /some-path
|
||||||
|
replacement: /some-replacement
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -28,24 +29,26 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing regex
|
- it: should fail with missing regex
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: replace-path-regex
|
enabled: true
|
||||||
data:
|
type: replace-path-regex
|
||||||
replacement: /some-replacement
|
data:
|
||||||
|
replacement: /some-replacement
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (replace-path-regex) - Expected [regex] to be set
|
errorMessage: Middleware (replace-path-regex) - Expected [regex] to be set
|
||||||
|
|
||||||
- it: should fail with missing replacement
|
- it: should fail with missing replacement
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: replace-path-regex
|
enabled: true
|
||||||
data:
|
type: replace-path-regex
|
||||||
regex: /some-path
|
data:
|
||||||
|
regex: /some-path
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (replace-path-regex) - Expected [replacement] to be set
|
errorMessage: Middleware (replace-path-regex) - Expected [replacement] to be set
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: replace-path
|
enabled: true
|
||||||
data:
|
type: replace-path
|
||||||
path: /some-path
|
data:
|
||||||
|
path: /some-path
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -26,12 +27,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing path
|
- it: should fail with missing path
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: replace-path
|
enabled: true
|
||||||
data:
|
type: replace-path
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (replace-path) - Expected [path] to be set
|
errorMessage: Middleware (replace-path) - Expected [path] to be set
|
||||||
|
|||||||
@@ -7,13 +7,14 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: retry
|
enabled: true
|
||||||
data:
|
type: retry
|
||||||
attempts: 3
|
data:
|
||||||
initialInterval: 1000
|
attempts: 3
|
||||||
|
initialInterval: 1000
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -28,12 +29,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing attempts
|
- it: should fail with missing attempts
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: retry
|
enabled: true
|
||||||
data:
|
type: retry
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (retry) - Expected [attempts] to be set
|
errorMessage: Middleware (retry) - Expected [attempts] to be set
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: strip-prefix
|
enabled: true
|
||||||
data:
|
type: strip-prefix
|
||||||
forceSlash: true
|
data:
|
||||||
prefix:
|
forceSlash: true
|
||||||
- /some-prefix
|
prefix:
|
||||||
- /some-other-prefix
|
- /some-prefix
|
||||||
|
- /some-other-prefix
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -32,26 +33,28 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing prefix
|
- it: should fail with missing prefix
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: strip-prefix
|
enabled: true
|
||||||
data:
|
type: strip-prefix
|
||||||
prefix: []
|
data:
|
||||||
|
prefix: []
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (strip-prefix) - Expected [prefix] to be set
|
errorMessage: Middleware (strip-prefix) - Expected [prefix] to be set
|
||||||
|
|
||||||
- it: should fail with invalid forceSlash
|
- it: should fail with invalid forceSlash
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: strip-prefix
|
enabled: true
|
||||||
data:
|
type: strip-prefix
|
||||||
prefix:
|
data:
|
||||||
- /some-prefix
|
prefix:
|
||||||
forceSlash: some-value
|
- /some-prefix
|
||||||
|
forceSlash: some-value
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (strip-prefix) - Expected [forceSlash] to be a boolean, but got [string]
|
errorMessage: Middleware (strip-prefix) - Expected [forceSlash] to be a boolean, but got [string]
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should pass with all set
|
- it: should pass with all set
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: strip-prefix-regex
|
enabled: true
|
||||||
data:
|
type: strip-prefix-regex
|
||||||
regex:
|
data:
|
||||||
- some-regex
|
regex:
|
||||||
- some-other-regex
|
- some-regex
|
||||||
|
- some-other-regex
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
@@ -30,12 +31,13 @@ tests:
|
|||||||
|
|
||||||
- it: should fail with missing regex
|
- it: should fail with missing regex
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: strip-prefix-regex
|
enabled: true
|
||||||
data:
|
type: strip-prefix-regex
|
||||||
regex: []
|
data:
|
||||||
|
regex: []
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware (strip-prefix-regex) - Expected [regex] to be set
|
errorMessage: Middleware (strip-prefix-regex) - Expected [regex] to be set
|
||||||
|
|||||||
@@ -7,23 +7,24 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should generate correct name
|
- it: should generate correct name
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware1:
|
traefik:
|
||||||
enabled: true
|
my-middleware1:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
foo: bar
|
data:
|
||||||
my-middleware2:
|
foo: bar
|
||||||
enabled: true
|
my-middleware2:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
foo: bar
|
data:
|
||||||
my-middleware3:
|
foo: bar
|
||||||
enabled: true
|
my-middleware3:
|
||||||
type: buffering
|
enabled: true
|
||||||
expandObjectName: false
|
type: buffering
|
||||||
data:
|
expandObjectName: false
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- documentIndex: &middlewareDoc 0
|
- documentIndex: &middlewareDoc 0
|
||||||
isKind:
|
isKind:
|
||||||
|
|||||||
@@ -7,97 +7,105 @@ release:
|
|||||||
tests:
|
tests:
|
||||||
- it: should fail with name longer than 253 characters
|
- it: should fail with name longer than 253 characters
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
? my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name
|
traefik:
|
||||||
: enabled: true
|
my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Name [test-release-name-common-test-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
|
errorMessage: Name [test-release-name-common-test-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
|
||||||
|
|
||||||
- it: should fail with name starting with underscore
|
- it: should fail with name starting with underscore
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
_my-middleware:
|
traefik:
|
||||||
enabled: true
|
_my-middleware:
|
||||||
type: buffering
|
enabled: true
|
||||||
data:
|
type: buffering
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Name [test-release-name-common-test-_my-middleware] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
|
errorMessage: Name [test-release-name-common-test-_my-middleware] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
|
||||||
|
|
||||||
- it: should fail with namespace longer than 63 characters
|
- it: should fail with namespace longer than 63 characters
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware:
|
traefik:
|
||||||
enabled: true
|
my-middleware:
|
||||||
type: buffering
|
enabled: true
|
||||||
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
type: buffering
|
||||||
data:
|
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters.
|
errorMessage: Middleware - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters.
|
||||||
|
|
||||||
- it: should fail with labels not a dict
|
- it: should fail with labels not a dict
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware:
|
traefik:
|
||||||
enabled: true
|
my-middleware:
|
||||||
type: buffering
|
enabled: true
|
||||||
labels: "not a dict"
|
type: buffering
|
||||||
data:
|
labels: "not a dict"
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware - Expected [labels] to be a dictionary, but got [string]
|
errorMessage: Middleware - Expected [labels] to be a dictionary, but got [string]
|
||||||
|
|
||||||
- it: should fail with annotations not a dict
|
- it: should fail with annotations not a dict
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware:
|
traefik:
|
||||||
enabled: true
|
my-middleware:
|
||||||
type: buffering
|
enabled: true
|
||||||
annotations: "not a dict"
|
type: buffering
|
||||||
data:
|
annotations: "not a dict"
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware - Expected [annotations] to be a dictionary, but got [string]
|
errorMessage: Middleware - Expected [annotations] to be a dictionary, but got [string]
|
||||||
|
|
||||||
- it: should fail with data not a dict
|
- it: should fail with data not a dict
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware:
|
traefik:
|
||||||
enabled: true
|
my-middleware:
|
||||||
type: buffering
|
enabled: true
|
||||||
data: "not a dict"
|
type: buffering
|
||||||
|
data: "not a dict"
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware - Expected [data] to be a dictionary, but got [string]
|
errorMessage: Middleware - Expected [data] to be a dictionary, but got [string]
|
||||||
|
|
||||||
- it: should fail with empty enabled
|
- it: should fail with empty enabled
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware:
|
traefik:
|
||||||
enabled:
|
my-middleware:
|
||||||
data:
|
enabled:
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware - Expected the defined key [enabled] in [middlewares.my-middleware] to not be empty
|
errorMessage: Middleware - Expected the defined key [enabled] in [middlewares.my-middleware] to not be empty
|
||||||
|
|
||||||
- it: should fail with empty type
|
- it: should fail with empty type
|
||||||
set:
|
set:
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
my-middleware:
|
traefik:
|
||||||
enabled: true
|
my-middleware:
|
||||||
type:
|
enabled: true
|
||||||
data:
|
type:
|
||||||
foo: bar
|
data:
|
||||||
|
foo: bar
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Middleware - Expected [type] to be set
|
errorMessage: Middleware - Expected [type] to be set
|
||||||
|
|||||||
@@ -48,4 +48,4 @@ sources:
|
|||||||
- https://hub.docker.com/_/
|
- https://hub.docker.com/_/
|
||||||
- https://hub.docker.com/r/mikefarah/yq
|
- https://hub.docker.com/r/mikefarah/yq
|
||||||
type: library
|
type: library
|
||||||
version: 25.4.15
|
version: 25.5.0
|
||||||
|
|||||||
@@ -5,8 +5,14 @@
|
|||||||
|
|
||||||
{{- define "tc.v1.common.spawner.traefik.middleware" -}}
|
{{- define "tc.v1.common.spawner.traefik.middleware" -}}
|
||||||
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}}
|
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}}
|
||||||
|
{{- if not .Values.ingressMiddlewares -}}
|
||||||
|
{{- $_ := set $.Values "ingressMiddlewares" dict -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if not .Values.ingressMiddlewares.traefik -}}
|
||||||
|
{{- $_ := set $.Values.ingressMiddlewares "traefik" dict -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- range $name, $middleware := .Values.middlewares -}}
|
{{- range $name, $middleware := $.Values.ingressMiddlewares.traefik -}}
|
||||||
|
|
||||||
{{- $enabled := (include "tc.v1.common.lib.util.enabled" (dict
|
{{- $enabled := (include "tc.v1.common.lib.util.enabled" (dict
|
||||||
"rootCtx" $ "objectData" $middleware
|
"rootCtx" $ "objectData" $middleware
|
||||||
|
|||||||
@@ -235,19 +235,39 @@ credentials:
|
|||||||
# ## Is used in cases where things are encrypted by a backup utility
|
# ## Is used in cases where things are encrypted by a backup utility
|
||||||
# encrKey: ""
|
# encrKey: ""
|
||||||
|
|
||||||
middlewares: {}
|
ingressMiddlewares:
|
||||||
# basic-auth:
|
traefik:
|
||||||
# type: basicAuth
|
tc-basic-secure-headers:
|
||||||
# data:
|
enabled: false
|
||||||
# # middleware specific data ie
|
type: headers
|
||||||
# users:
|
data:
|
||||||
# - username: user1
|
accessControlAllowMethods:
|
||||||
# password: password1
|
- GET
|
||||||
# some-other-middleware:
|
- OPTIONS
|
||||||
# type: someOtherMiddleware
|
- HEAD
|
||||||
# data:
|
- PUT
|
||||||
# # middleware specific data ie
|
accessControlMaxAge: 100
|
||||||
# someOtherMiddlewareData: someOtherMiddlewareData
|
stsSeconds: 63072000
|
||||||
|
forceSTSHeader: true
|
||||||
|
contentTypeNosniff: true
|
||||||
|
browserXssFilter: true
|
||||||
|
referrerPolicy: same-origin
|
||||||
|
customRequestHeaders:
|
||||||
|
X-Forwarded-Proto: "https"
|
||||||
|
# basic-auth:
|
||||||
|
# enabled: true
|
||||||
|
# type: basicAuth
|
||||||
|
# data:
|
||||||
|
# # middleware specific data ie
|
||||||
|
# users:
|
||||||
|
# - username: user1
|
||||||
|
# password: password1
|
||||||
|
# some-other-middleware:
|
||||||
|
# enabled: true
|
||||||
|
# type: someOtherMiddleware
|
||||||
|
# data:
|
||||||
|
# # middleware specific data ie
|
||||||
|
# someOtherMiddlewareData: someOtherMiddlewareData
|
||||||
|
|
||||||
# -- (docs/persistence/README.md)
|
# -- (docs/persistence/README.md)
|
||||||
persistence:
|
persistence:
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
title: Add Prefix Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/add-prefix#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/addprefix)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: add-prefix`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `prefix`
|
|
||||||
|
|
||||||
Define the prefix
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.prefix` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
prefix: some-prefix
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: add-prefix
|
|
||||||
data:
|
|
||||||
prefix: some-prefix
|
|
||||||
```
|
|
||||||
@@ -1,152 +0,0 @@
|
|||||||
---
|
|
||||||
title: Basic Auth Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/basic-auth#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/basicauth)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: basic-auth`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `users`
|
|
||||||
|
|
||||||
Define the users
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
If this is set, the `secret` key must not be set.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.users` |
|
|
||||||
| Type | `list` of `map` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
users:
|
|
||||||
- username: some-username
|
|
||||||
password: some-password
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `users[].username`
|
|
||||||
|
|
||||||
Define the username
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.users.username` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
users:
|
|
||||||
- username: some-username
|
|
||||||
password: some-password
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `users[].password`
|
|
||||||
|
|
||||||
Define the password
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.users.password` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
users:
|
|
||||||
- username: some-username
|
|
||||||
password: some-password
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `secret`
|
|
||||||
|
|
||||||
Define the secret
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
If this is set, the `users` key must not be set.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.secret` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
secret: some-secret
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name1:
|
|
||||||
enabled: true
|
|
||||||
type: basic-auth
|
|
||||||
data:
|
|
||||||
users:
|
|
||||||
- username: some-username
|
|
||||||
password: some-password
|
|
||||||
middleware-name2:
|
|
||||||
enabled: true
|
|
||||||
type: basic-auth
|
|
||||||
data:
|
|
||||||
secret: some-secret
|
|
||||||
```
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
---
|
|
||||||
title: Buffering Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/buffering#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/buffering)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: buffering`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `maxRequestBodyBytes`
|
|
||||||
|
|
||||||
Define the maxRequestBodyBytes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.maxRequestBodyBytes` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
maxRequestBodyBytes: 1024
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `memRequestBodyBytes`
|
|
||||||
|
|
||||||
Define the memRequestBodyBytes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.memRequestBodyBytes` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
memRequestBodyBytes: 1024
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `maxResponseBodyBytes`
|
|
||||||
|
|
||||||
Define the maxResponseBodyBytes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.maxResponseBodyBytes` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
maxResponseBodyBytes: 1024
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `memResponseBodyBytes`
|
|
||||||
|
|
||||||
Define the memResponseBodyBytes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.memResponseBodyBytes` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
memResponseBodyBytes: 1024
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `retryExpression`
|
|
||||||
|
|
||||||
Define the retryExpression
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.retryExpression` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
retryExpression: "some-expression"
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: buffering
|
|
||||||
data:
|
|
||||||
maxRequestBodyBytes: 1024
|
|
||||||
memRequestBodyBytes: 1024
|
|
||||||
maxResponseBodyBytes: 1024
|
|
||||||
memResponseBodyBytes: 1024
|
|
||||||
retryExpression: "some-expression"
|
|
||||||
```
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
---
|
|
||||||
title: Chain Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/chain#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/chain)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: chain`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `middlewares`
|
|
||||||
|
|
||||||
Define the middlewares
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.middlewares` |
|
|
||||||
| Type | `list` of `map` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
middlewares: []
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `middlewares[].name`
|
|
||||||
|
|
||||||
Define the middleware name
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.middlewares.name` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
middlewares:
|
|
||||||
- name: some-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `middlewares[].expandObjectName`
|
|
||||||
|
|
||||||
Define the middleware expandObjectName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.middlewares.expandObjectName` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `true` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
middlewares:
|
|
||||||
- name: some-name
|
|
||||||
expandObjectName: false
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: compress
|
|
||||||
```
|
|
||||||
@@ -1,207 +0,0 @@
|
|||||||
---
|
|
||||||
title: Forward Auth Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/forward-auth#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/forwardauth)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: forward-auth`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `address`
|
|
||||||
|
|
||||||
Define the address
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.address` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
address: some-address
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `authResponseHeadersRegex`
|
|
||||||
|
|
||||||
Define the authResponseHeadersRegex
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.authResponseHeadersRegex` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
authResponseHeadersRegex: some-regex
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `trustForwardHeader`
|
|
||||||
|
|
||||||
Define the trustForwardHeader
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.trustForwardHeader` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `false` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
trustForwardHeader: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `authResponseHeaders`
|
|
||||||
|
|
||||||
Define the authResponseHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.authResponseHeaders` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `[]` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
authResponseHeaders:
|
|
||||||
- some-header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `authRequestHeaders`
|
|
||||||
|
|
||||||
Define the authRequestHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.authRequestHeaders` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `[]` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
authRequestHeaders:
|
|
||||||
- some-header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `tls`
|
|
||||||
|
|
||||||
Define the tls
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.tls` |
|
|
||||||
| Type | `map` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `{}` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
tls: {}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `tls.insecureSkipVerify`
|
|
||||||
|
|
||||||
Define the tls.insecureSkipVerify
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.tls.insecureSkipVerify` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `false` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
tls:
|
|
||||||
insecureSkipVerify: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: forward-auth
|
|
||||||
data:
|
|
||||||
address: some-address
|
|
||||||
authResponseHeadersRegex: some-regex
|
|
||||||
trustForwardHeader: true
|
|
||||||
authResponseHeaders:
|
|
||||||
- some-header
|
|
||||||
authRequestHeaders:
|
|
||||||
- some-header
|
|
||||||
tls:
|
|
||||||
insecureSkipVerify: true
|
|
||||||
```
|
|
||||||
@@ -1,748 +0,0 @@
|
|||||||
---
|
|
||||||
title: Headers Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/headers#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/headers)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: headers`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `customRequestHeaders`
|
|
||||||
|
|
||||||
Define the customRequestHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.customRequestHeaders` |
|
|
||||||
| Type | `map` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
customRequestHeaders:
|
|
||||||
some-name: some-value
|
|
||||||
some-other-name: some-other-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `customResponseHeaders`
|
|
||||||
|
|
||||||
Define the customResponseHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.customResponseHeaders` |
|
|
||||||
| Type | `map` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
customResponseHeaders:
|
|
||||||
some-name: some-value
|
|
||||||
some-other-name: some-other-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlAllowCredentials`
|
|
||||||
|
|
||||||
Define the accessControlAllowCredentials
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.accessControlAllowCredentials` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlAllowCredentials: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlAllowHeaders`
|
|
||||||
|
|
||||||
Define the accessControlAllowHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.accessControlAllowHeaders` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlAllowHeaders:
|
|
||||||
- some-header
|
|
||||||
- some-other-header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlAllowMethods`
|
|
||||||
|
|
||||||
Define the accessControlAllowMethods
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.accessControlAllowMethods` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlAllowMethods:
|
|
||||||
- GET
|
|
||||||
- POST
|
|
||||||
- PUT
|
|
||||||
- DELETE
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlAllowOriginList`
|
|
||||||
|
|
||||||
Define the accessControlAllowOriginList
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.accessControlAllowOriginList` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlAllowOriginList:
|
|
||||||
- some-origin
|
|
||||||
- some-other-origin
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlAllowOriginListRegex`
|
|
||||||
|
|
||||||
Define the accessControlAllowOriginListRegex
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.accessControlAllowOriginList` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlAllowOriginListRegex:
|
|
||||||
- some-origin-regex
|
|
||||||
- some-other-origin-regex
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlExposeHeaders`
|
|
||||||
|
|
||||||
Define the accessControlExposeHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.accessControlExposeHeaders` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlExposeHeaders:
|
|
||||||
- some-header
|
|
||||||
- some-other-header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `accessControlMaxAge`
|
|
||||||
|
|
||||||
Define the accessControlMaxAge
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.accessControlMaxAge` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
accessControlMaxAge: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `addVaryHeader`
|
|
||||||
|
|
||||||
Define the addVaryHeader
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.addVaryHeader` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
addVaryHeader: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `allowedHosts`
|
|
||||||
|
|
||||||
Define the allowedHosts
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.allowedHosts` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
allowedHosts:
|
|
||||||
- some-host
|
|
||||||
- some-other-host
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `hostsProxyHeaders`
|
|
||||||
|
|
||||||
Define the hostsProxyHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.hostsProxyHeaders` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
hostsProxyHeaders:
|
|
||||||
- some-header
|
|
||||||
- some-other-header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `sslProxyHeaders`
|
|
||||||
|
|
||||||
Define the sslProxyHeaders
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.sslProxyHeaders` |
|
|
||||||
| Type | `map` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
sslProxyHeaders:
|
|
||||||
some-header: some-value
|
|
||||||
some-other-header: some-other-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `stsSeconds`
|
|
||||||
|
|
||||||
Define the stsSeconds
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.stsSeconds` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
stsSeconds: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `stsIncludeSubdomains`
|
|
||||||
|
|
||||||
Define the stsIncludeSubdomains
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.stsIncludeSubdomains` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
stsIncludeSubdomains: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `stsPreload`
|
|
||||||
|
|
||||||
Define the stsPreload
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.stsPreload` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
stsPreload: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `forceSTSHeader`
|
|
||||||
|
|
||||||
Define the forceSTSHeader
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.forceSTSHeader` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
forceSTSHeader: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `frameDeny`
|
|
||||||
|
|
||||||
Define the frameDeny
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.frameDeny` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
frameDeny: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `customFrameOptionsValue`
|
|
||||||
|
|
||||||
Define the customFrameOptionsValue
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.customFrameOptionsValue` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
customFrameOptionsValue: some-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `contentTypeNosniff`
|
|
||||||
|
|
||||||
Define the contentTypeNosniff
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.contentTypeNosniff` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
contentTypeNosniff: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `browserXssFilter`
|
|
||||||
|
|
||||||
Define the browserXssFilter
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.browserXssFilter` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
browserXssFilter: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `customBrowserXSSValue`
|
|
||||||
|
|
||||||
Define the customBrowserXSSValue
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.customBrowserXSSValue` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
customBrowserXSSValue: some-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `contentSecurityPolicy`
|
|
||||||
|
|
||||||
Define the contentSecurityPolicy
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.contentSecurityPolicy` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
contentSecurityPolicy: some-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `contentSecurityPolicyReportOnly`
|
|
||||||
|
|
||||||
Define the contentSecurityPolicyReportOnly
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.contentSecurityPolicy` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
contentSecurityPolicyReportOnly: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `publicKey`
|
|
||||||
|
|
||||||
Define the publicKey
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.publicKey` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
publicKey: some-public-key
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `referrerPolicy`
|
|
||||||
|
|
||||||
Define the referrerPolicy
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.referrerPolicy` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
referrerPolicy: some-referrer-policy
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `permissionsPolicy`
|
|
||||||
|
|
||||||
Define the permissionsPolicy
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.permissionsPolicy` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
permissionsPolicy: some-permissions-policy
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `isDevelopment`
|
|
||||||
|
|
||||||
Define the isDevelopment
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.isDevelopment` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
isDevelopment: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: headers
|
|
||||||
data:
|
|
||||||
customRequestHeaders:
|
|
||||||
some-name: some-value
|
|
||||||
some-other-name: some-other-value
|
|
||||||
customResponseHeaders:
|
|
||||||
some-name: some-value
|
|
||||||
some-other-name: some-other-value
|
|
||||||
accessControlAllowCredentials: true
|
|
||||||
accessControlAllowHeaders:
|
|
||||||
- some-header
|
|
||||||
- some-other-header
|
|
||||||
accessControlAllowMethods:
|
|
||||||
- GET
|
|
||||||
- DELETE
|
|
||||||
accessControlAllowOriginList:
|
|
||||||
- some-origin
|
|
||||||
- some-other-origin
|
|
||||||
accessControlAllowOriginListRegex:
|
|
||||||
- some-origin-regex
|
|
||||||
- some-other-origin-regex
|
|
||||||
accessControlExposeHeaders:
|
|
||||||
- some-header
|
|
||||||
- some-other-header
|
|
||||||
accessControlMaxAge: 1000
|
|
||||||
addVaryHeader: true
|
|
||||||
allowedHosts:
|
|
||||||
- some-host
|
|
||||||
- some-other-host
|
|
||||||
hostsProxyHeaders:
|
|
||||||
- some-header
|
|
||||||
- some-other-header
|
|
||||||
sslProxyHeaders:
|
|
||||||
some-header: some-value
|
|
||||||
some-other-header: some-other-value
|
|
||||||
stsSeconds: 1000
|
|
||||||
stsIncludeSubdomains: true
|
|
||||||
stsPreload: true
|
|
||||||
forceSTSHeader: true
|
|
||||||
frameDeny: true
|
|
||||||
customFrameOptionsValue: some-value
|
|
||||||
contentTypeNosniff: true
|
|
||||||
browserXssFilter: true
|
|
||||||
customBrowserXSSValue: some-value
|
|
||||||
contentSecurityPolicy: some-value
|
|
||||||
contentSecurityPolicyReportOnly: true
|
|
||||||
publicKey: some-public-key
|
|
||||||
referrerPolicy: some-referrer-policy
|
|
||||||
permissionsPolicy: some-permissions-policy
|
|
||||||
isDevelopment: true
|
|
||||||
```
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Middlewares
|
title: Ingress Middlewares
|
||||||
---
|
---
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
@@ -11,7 +11,7 @@ title: Middlewares
|
|||||||
|
|
||||||
## Appears in
|
## Appears in
|
||||||
|
|
||||||
- `.Values.middlewares`
|
- `.Values.ingressMiddlewares`
|
||||||
|
|
||||||
## Naming scheme
|
## Naming scheme
|
||||||
|
|
||||||
@@ -25,224 +25,240 @@ title: Middlewares
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## `middlewares`
|
## `ingressMiddlewares`
|
||||||
|
|
||||||
Create Middleware objects
|
Create Middleware objects
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | ------------- |
|
| ---------- | -------------------- |
|
||||||
| Key | `middlewares` |
|
| Key | `ingressMiddlewares` |
|
||||||
| Type | `map` |
|
| Type | `map` |
|
||||||
| Required | ❌ |
|
| Required | ❌ |
|
||||||
| Helm `tpl` | ❌ |
|
| Helm `tpl` | ❌ |
|
||||||
| Default | `{}` |
|
| Default | `{}` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares: {}
|
ingressMiddlewares: {}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### `$name`
|
### `$provider`
|
||||||
|
|
||||||
Define Middleware
|
Define Middleware
|
||||||
|
|
||||||
| | |
|
:::note
|
||||||
| ---------- | ------------------- |
|
|
||||||
| Key | `middlewares.$name` |
|
- Available providers are:
|
||||||
| Type | `map` |
|
- [traefik](/common/middlewares/traefik)
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
:::
|
||||||
| Default | `{}` |
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.$provider` |
|
||||||
|
| Type | `map` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `{}` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name: {}
|
traefik: {}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### `enabled`
|
#### `$name`
|
||||||
|
|
||||||
Enables or Disables the Configmap
|
Define Middleware
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | ------------------------- |
|
| ---------- | ------------------------------------ |
|
||||||
| Key | `configmap.$name.enabled` |
|
| Key | `ingressMiddlewares.$provider.$name` |
|
||||||
| Type | `bool` |
|
| Type | `map` |
|
||||||
| Required | ✅ |
|
| Required | ✅ |
|
||||||
| Helm `tpl` | ✅ |
|
| Helm `tpl` | ❌ |
|
||||||
| Default | `false` |
|
| Default | `{}` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
enabled: true
|
middleware-name: {}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### `expandObjectName`
|
##### `enabled`
|
||||||
|
|
||||||
|
Enables or Disables the Middleware
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.$provider.$name.enabled` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ✅ |
|
||||||
|
| Default | `false` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### `expandObjectName`
|
||||||
|
|
||||||
Whether to expand (adding the fullname as prefix) the middleware name.
|
Whether to expand (adding the fullname as prefix) the middleware name.
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | ---------------------------------- |
|
| ---------- | ---------------------------------------------------- |
|
||||||
| Key | `configmap.$name.expandObjectName` |
|
| Key | `ingressMiddleware.$provider.$name.expandObjectName` |
|
||||||
| Type | `bool` |
|
| Type | `bool` |
|
||||||
| Required | ✅ |
|
| Required | ✅ |
|
||||||
| Helm `tpl` | ✅ |
|
| Helm `tpl` | ✅ |
|
||||||
| Default | `true` |
|
| Default | `true` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
expandObjectName: false
|
middleware-name:
|
||||||
|
expandObjectName: false
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### `namespace`
|
##### `namespace`
|
||||||
|
|
||||||
Define the namespace for this object
|
Define the namespace for this object
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | ----------------------------- |
|
| ---------- | ---------------------------------------------- |
|
||||||
| Key | `middlewares.$name.namespace` |
|
| Key | `ingressMiddlewares.$provider.$name.namespace` |
|
||||||
| Type | `string` |
|
| Type | `string` |
|
||||||
| Required | ❌ |
|
| Required | ❌ |
|
||||||
| Helm `tpl` | ✅ |
|
| Helm `tpl` | ✅ |
|
||||||
| Default | `""` |
|
| Default | `""` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
namespace: some-namespace
|
middleware-name:
|
||||||
|
namespace: some-namespace
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### `type`
|
##### `labels`
|
||||||
|
|
||||||
Define the type for this object
|
|
||||||
|
|
||||||
Available types:
|
|
||||||
|
|
||||||
- [add-prefix](/common/middlewares/add-prefix)
|
|
||||||
- [basic-auth](/common/middlewares/basic-auth)
|
|
||||||
- [buffering](/common/middlewares/buffering)
|
|
||||||
- [chain](/common/middlewares/chain)
|
|
||||||
- [compress](/common/middlewares/compress)
|
|
||||||
- [content-type](/common/middlewares/content-type)
|
|
||||||
- [forward-auth](/common/middlewares/forward-auth)
|
|
||||||
- [headers](/common/middlewares/headers)
|
|
||||||
- [ip-allow-list](/common/middlewares/ip-allow-list)
|
|
||||||
- [plugin-bouncer](/common/middlewares/plugin-bouncer)
|
|
||||||
- [plugin-geoblock](/common/middlewares/plugin-geoblock)
|
|
||||||
- [plugin-mod-security](/common/middlewares/plugin-mod-security)
|
|
||||||
- [plugin-real-ip](/common/middlewares/plugin-real-ip)
|
|
||||||
- [plugin-rewrite-response-headers](/common/middlewares/plugin-rewrite-response-headers)
|
|
||||||
- [plugin-theme-park](/common/middlewares/plugin-theme-park)
|
|
||||||
- [rate-limit](/common/middlewares/rate-limit)
|
|
||||||
- [redirect-regex](/common/middlewares/redirect-regex)
|
|
||||||
- [redirect-scheme](/common/middlewares/redirect-scheme)
|
|
||||||
- [replace-path-regex](/common/middlewares/replace-path-regex)
|
|
||||||
- [replace-path](/common/middlewares/replace-path)
|
|
||||||
- [retry](/common/middlewares/retry)
|
|
||||||
- [strip-prefix-regex](/common/middlewares/strip-prefix-regex)
|
|
||||||
- [strip-prefix](/common/middlewares/strip-prefix)
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------ |
|
|
||||||
| Key | `middlewares.$name.type` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `""` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
type: buffering
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
#### `labels`
|
|
||||||
|
|
||||||
Additional labels for middleware
|
Additional labels for middleware
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | -------------------------- |
|
| ---------- | ------------------------------------------- |
|
||||||
| Key | `middlewares.$name.labels` |
|
| Key | `ingressMiddlewares.$provider.$name.labels` |
|
||||||
| Type | `map` |
|
| Type | `map` |
|
||||||
| Required | ❌ |
|
| Required | ❌ |
|
||||||
| Helm `tpl` | ✅ (On value only) |
|
| Helm `tpl` | ✅ (On value only) |
|
||||||
| Default | `{}` |
|
| Default | `{}` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
labels:
|
middleware-name:
|
||||||
key: value
|
labels:
|
||||||
|
key: value
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### `annotations`
|
##### `annotations`
|
||||||
|
|
||||||
Additional annotations for middleware
|
Additional annotations for middleware
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | ------------------------------- |
|
| ---------- | ------------------------------------------------ |
|
||||||
| Key | `middlewares.$name.annotations` |
|
| Key | `ingressMiddlewares.$provider.$name.annotations` |
|
||||||
| Type | `map` |
|
| Type | `map` |
|
||||||
| Required | ❌ |
|
| Required | ❌ |
|
||||||
| Helm `tpl` | ✅ (On value only) |
|
| Helm `tpl` | ✅ (On value only) |
|
||||||
| Default | `{}` |
|
| Default | `{}` |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
annotations:
|
middleware-name:
|
||||||
key: value
|
annotations:
|
||||||
|
key: value
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### `data`
|
##### `data`
|
||||||
|
|
||||||
Define the data of the middleware
|
Define the data of the middleware
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| ---------- | ------------------------ |
|
| ---------- | ----------------------------------------- |
|
||||||
| Key | `middlewares.$name.data` |
|
| Key | `ingressMiddlewares.$provider.$name.data` |
|
||||||
| Type | `map` |
|
| Type | `map` |
|
||||||
| Required | ✅ |
|
| Required | ✅ |
|
||||||
| Helm `tpl` | ✅ |
|
| Helm `tpl` | ✅ |
|
||||||
| Example | `{}` |
|
| Example | `{}` |
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
data:
|
middleware-name:
|
||||||
key: value
|
data:
|
||||||
|
key: value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### `type`
|
||||||
|
|
||||||
|
Define the type for this object
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
See the [provider](/common/middlewares#provider) documentation for more information.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.$provider.$name.type` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `""` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
type: buffering
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -250,24 +266,25 @@ middlewares:
|
|||||||
## Full Examples
|
## Full Examples
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
enabled: true
|
middleware-name:
|
||||||
type: buffering
|
enabled: true
|
||||||
expandObjectName: false
|
type: buffering
|
||||||
labels:
|
expandObjectName: false
|
||||||
key: value
|
labels:
|
||||||
keytpl: "{{ .Values.some.value }}"
|
key: value
|
||||||
annotations:
|
keytpl: "{{ .Values.some.value }}"
|
||||||
key: value
|
annotations:
|
||||||
keytpl: "{{ .Values.some.value }}"
|
key: value
|
||||||
data:
|
keytpl: "{{ .Values.some.value }}"
|
||||||
key: value
|
data:
|
||||||
|
key: value
|
||||||
|
|
||||||
other-middleware-name:
|
other-middleware-name:
|
||||||
enabled: true
|
enabled: true
|
||||||
type: buffering
|
type: buffering
|
||||||
namespace: some-namespace
|
namespace: some-namespace
|
||||||
data:
|
data:
|
||||||
key: value
|
key: value
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,136 +0,0 @@
|
|||||||
---
|
|
||||||
title: IP Allow List Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/ip-allow-list#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ipallowlist)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: ip-allow-list`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `sourceRange`
|
|
||||||
|
|
||||||
Define the sourceRange
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.sourceRange` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
sourceRange:
|
|
||||||
- some-source-range
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `ipStrategy`
|
|
||||||
|
|
||||||
Define the ipStrategy
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.ipStrategy` |
|
|
||||||
| Type | `map` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `{}` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
ipStrategy: {}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `ipStrategy.depth`
|
|
||||||
|
|
||||||
Define the ipStrategy.depth
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.ipStrategy.depth` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
ipStrategy:
|
|
||||||
depth: 1
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `ipStrategy.excludedIPs`
|
|
||||||
|
|
||||||
Define the ipStrategy.excludedIPs
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.ipStrategy.excludedIPs` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
ipStrategy:
|
|
||||||
excludedIPs:
|
|
||||||
- some-excluded-ip
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: ip-allow-list
|
|
||||||
data:
|
|
||||||
sourceRange:
|
|
||||||
- some-source-range
|
|
||||||
ipStrategy:
|
|
||||||
depth: 1
|
|
||||||
excludedIPs:
|
|
||||||
- some-excluded-ip
|
|
||||||
```
|
|
||||||
@@ -1,958 +0,0 @@
|
|||||||
---
|
|
||||||
title: Plugin Bouncer Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/plugin-bouncer#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: plugin-bouncer`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `pluginName`
|
|
||||||
|
|
||||||
Define the pluginName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.pluginName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `bouncer` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `enabled`
|
|
||||||
|
|
||||||
Define the enabled
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.enabled` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
enabled: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `logLevel`
|
|
||||||
|
|
||||||
Define the logLevel
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.logLevel` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
logLevel: DEBUG
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `updateIntervalSeconds`
|
|
||||||
|
|
||||||
Define the updateIntervalSeconds
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.updateIntervalSeconds` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
updateIntervalSeconds: 60
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `updateMaxFailure`
|
|
||||||
|
|
||||||
Define the updateMaxFailure
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.updateMaxFailure` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
updateMaxFailure: 0
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `defaultDecisionSeconds`
|
|
||||||
|
|
||||||
Define the defaultDecisionSeconds
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.defaultDecisionSeconds` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
defaultDecisionSeconds: 60
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `httpTimeoutSeconds`
|
|
||||||
|
|
||||||
Define the httpTimeoutSeconds
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.httpTimeoutSeconds` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
httpTimeoutSeconds: 10
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecMode`
|
|
||||||
|
|
||||||
Define the crowdsecMode
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsec` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecMode: live
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecAppsecEnabled`
|
|
||||||
|
|
||||||
Define the crowdsecAppsecEnabled
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecAppsecEnabled` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecAppsecEnabled: false
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecAppsecHost`
|
|
||||||
|
|
||||||
Define the crowdsecAppsecHost
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecAppsecHost` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecAppsecHost: crowdsec:7422
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecAppsecFailureBlock`
|
|
||||||
|
|
||||||
Define the crowdsecAppsecFailureBlock
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecAppsecFailureBlock` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecAppsecFailureBlock: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecAppsecUnreachableBlock`
|
|
||||||
|
|
||||||
Define the crowdsecAppsecUnreachableBlock
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecAppsecUnreachableBlock` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecAppsecUnreachableBlock: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiKey`
|
|
||||||
|
|
||||||
Define the crowdsecLapiKey
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecLapiKey` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiKey: privateKey-foo
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiHost`
|
|
||||||
|
|
||||||
Define the crowdsecLapiHost
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecLapiHost` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiHost: crowdsec:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiScheme`
|
|
||||||
|
|
||||||
Define the crowdsecLapiScheme
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsec` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiScheme: http
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiTLSInsecureVerify`
|
|
||||||
|
|
||||||
Define the crowdsecLapiTLSInsecureVerify
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecLapiTLSInsecureVerify` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiTLSInsecureVerify: false
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecCapiMachineId`
|
|
||||||
|
|
||||||
Define the crowdsecCapiMachineId
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecCapiMachineId` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecCapiMachineId: login
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecCapiPassword`
|
|
||||||
|
|
||||||
Define the crowdsecCapiPassword
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecCapiPassword` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecCapiPassword: password
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecCapiScenarios`
|
|
||||||
|
|
||||||
Define the crowdsecCapiScenarios
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecCapiScenarios` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecCapiScenarios:
|
|
||||||
- crowdsecurity/http-path-traversal-probing
|
|
||||||
- crowdsecurity/http-xss-probing
|
|
||||||
- crowdsecurity/http-generic-bf
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `forwardedHeadersTrustedIPs`
|
|
||||||
|
|
||||||
Define the forwardedHeadersTrustedIPs
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.forwardedHeadersTrustedIPs` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
forwardedHeadersTrustedIPs:
|
|
||||||
- 10.0.10.23/32
|
|
||||||
- 10.0.20.0/24
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `clientTrustedIPs`
|
|
||||||
|
|
||||||
Define the clientTrustedIPs
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.clientTrustedIPs` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
clientTrustedIPs:
|
|
||||||
- 192.168.1.0/24
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `forwardedHeadersCustomName`
|
|
||||||
|
|
||||||
Define the forwardedHeadersCustomName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.forwardedHeadersCustomName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
forwardedHeadersCustomName: X-Custom-Header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `remediationHeadersCustomName`
|
|
||||||
|
|
||||||
Define the remediationHeadersCustomName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.remediationHeadersCustomName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
remediationHeadersCustomName: cs-remediation
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `redisCacheEnabled`
|
|
||||||
|
|
||||||
Define the redisCacheEnabled
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.redisCacheEnabled` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
redisCacheEnabled: false
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `redisCacheHost`
|
|
||||||
|
|
||||||
Define the redisCacheHost
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.redisCacheHost` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
redisCacheHost: "redis:6379"
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `redisCachePassword`
|
|
||||||
|
|
||||||
Define the redisCachePassword
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.redisCachePassword` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
redisCachePassword: password
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `redisCacheDatabase`
|
|
||||||
|
|
||||||
Define the redisCacheDatabase
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.redisCacheDatabase` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
redisCacheDatabase: "5"
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiTLSCertificateAuthority`
|
|
||||||
|
|
||||||
Define the crowdsecLapiTLSCertificateAuthority
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecLapiTLSCertificateAuthority` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiTLSCertificateAuthority: |-
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
|
||||||
...
|
|
||||||
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiTLSCertificateBouncer`
|
|
||||||
|
|
||||||
Define the crowdsecLapiTLSCertificateBouncer
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecLapiTLSCertificateBouncer` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiTLSCertificateBouncer: |-
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
|
||||||
...
|
|
||||||
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
|
||||||
N2U=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `crowdsecLapiTLSCertificateBouncerKey`
|
|
||||||
|
|
||||||
Define the crowdsecLapiTLSCertificateBouncerKey
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.crowdsecLapiTLSCertificateBouncerKey` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
crowdsecLapiTLSCertificateBouncerKey: |-
|
|
||||||
-----BEGIN TOTALY NOT A SECRET-----
|
|
||||||
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
|
||||||
...
|
|
||||||
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
|
||||||
-----END TOTALY NOT A SECRET-----
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `captchaProvider`
|
|
||||||
|
|
||||||
Define the captchaProvider
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.captchaProvider` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
captchaProvider: hcaptcha
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `captchaSiteKey`
|
|
||||||
|
|
||||||
Define the captchaSiteKey
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.captchaSiteKey` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
captchaSiteKey: FIXME
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `captchaSecretKey`
|
|
||||||
|
|
||||||
Define the captchaSecretKey
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.captchaSecretKey` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
captchaSecretKey: FIXME
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `captchaGracePeriodSeconds`
|
|
||||||
|
|
||||||
Define the captchaGracePeriodSeconds
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.captchaGracePeriodSeconds` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
captchaGracePeriodSeconds: 1800
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `captchaHTMLFilePath`
|
|
||||||
|
|
||||||
Define the captchaHTMLFilePath
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.captchaHTMLFilePath` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
captchaHTMLFilePath: /captcha.html
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `banHTMLFilePath`
|
|
||||||
|
|
||||||
Define the banHTMLFilePath
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.banHTMLFilePath` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
banHTMLFilePath: /ban.html
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `captchaHTMLFilePath`
|
|
||||||
|
|
||||||
Define the captchaHTMLFilePath
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.captchaHTMLFilePath` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
captchaHTMLFilePath: /captcha.html
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: plugin-bouncer
|
|
||||||
data:
|
|
||||||
enabled: true
|
|
||||||
logLevel: DEBUG
|
|
||||||
updateIntervalSeconds: 60
|
|
||||||
updateMaxFailure: 0
|
|
||||||
defaultDecisionSeconds: 60
|
|
||||||
httpTimeoutSeconds: 10
|
|
||||||
crowdsecMode: live
|
|
||||||
crowdsecAppsecEnabled: false
|
|
||||||
crowdsecAppsecHost: crowdsec:7422
|
|
||||||
crowdsecAppsecFailureBlock: true
|
|
||||||
crowdsecAppsecUnreachableBlock: true
|
|
||||||
crowdsecLapiKey: privateKey-foo
|
|
||||||
crowdsecLapiHost: crowdsec:8080
|
|
||||||
crowdsecLapiScheme: http
|
|
||||||
crowdsecLapiTLSInsecureVerify: false
|
|
||||||
crowdsecCapiMachineId: login
|
|
||||||
crowdsecCapiPassword: password
|
|
||||||
crowdsecCapiScenarios:
|
|
||||||
- crowdsecurity/http-path-traversal-probing
|
|
||||||
- crowdsecurity/http-xss-probing
|
|
||||||
- crowdsecurity/http-generic-bf
|
|
||||||
forwardedHeadersTrustedIPs:
|
|
||||||
- 10.0.10.23/32
|
|
||||||
- 10.0.20.0/24
|
|
||||||
clientTrustedIPs:
|
|
||||||
- 192.168.1.0/24
|
|
||||||
forwardedHeadersCustomName: X-Custom-Header
|
|
||||||
remediationHeadersCustomName: cs-remediation
|
|
||||||
redisCacheEnabled: false
|
|
||||||
redisCacheHost: "redis:6379"
|
|
||||||
redisCachePassword: password
|
|
||||||
redisCacheDatabase: "5"
|
|
||||||
crowdsecLapiTLSCertificateAuthority: |-
|
|
||||||
-----BEGIN TOTALY NOT A CERT-----
|
|
||||||
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
|
||||||
...
|
|
||||||
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
|
||||||
-----END TOTALY NOT A CERT-----
|
|
||||||
crowdsecLapiTLSCertificateBouncer: |-
|
|
||||||
-----BEGIN TOTALY NOT A CERT-----
|
|
||||||
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
|
||||||
...
|
|
||||||
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
|
||||||
N2U=
|
|
||||||
-----END TOTALY NOT A CERT-----
|
|
||||||
captchaProvider: hcaptcha
|
|
||||||
captchaSiteKey: FIXME
|
|
||||||
captchaSecretKey: FIXME
|
|
||||||
captchaGracePeriodSeconds: 1800
|
|
||||||
captchaHTMLFilePath: /captcha.html
|
|
||||||
banHTMLFilePath: /ban.html
|
|
||||||
```
|
|
||||||
@@ -1,397 +0,0 @@
|
|||||||
---
|
|
||||||
title: Plugin Geoblock Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/plugin-geoblock#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://github.com/PascalMinder/geoblock)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: plugin-geoblock`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `pluginName`
|
|
||||||
|
|
||||||
Define the pluginName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.pluginName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `GeoBlock` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `api`
|
|
||||||
|
|
||||||
Define the api
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.api` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
api: https://api.geoblock.org/v2/geoblock
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `allowLocalRequests`
|
|
||||||
|
|
||||||
Define the allowLocalRequests
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.allowLocalRequests` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
allowLocalRequests: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `logLocalRequests`
|
|
||||||
|
|
||||||
Define the logLocalRequests
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.logLocalRequests` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
logLocalRequests: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `logAllowedRequests`
|
|
||||||
|
|
||||||
Define the logAllowedRequests
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.logAllowedRequests` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
logAllowedRequests: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `logApiRequests`
|
|
||||||
|
|
||||||
Define the logApiRequests
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.logApiRequests` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
logApiRequests: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `apiTimeoutMs`
|
|
||||||
|
|
||||||
Define the apiTimeoutMs
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.apiTimeoutMs` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
apiTimeoutMs: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `cacheSize`
|
|
||||||
|
|
||||||
Define the cacheSize
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.cacheSize` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
cacheSize: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `forceMonthlyUpdate`
|
|
||||||
|
|
||||||
Define the forceMonthlyUpdate
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.forceMonthlyUpdate` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
forceMonthlyUpdate: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `allowUnknownCountries`
|
|
||||||
|
|
||||||
Define the allowUnknownCountries
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.allowUnknownCountries` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
allowUnknownCountries: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `unknownCountryApiResponse`
|
|
||||||
|
|
||||||
Define the unknownCountryApiResponse
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.unknownCountryApiResponse` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
unknownCountryApiResponse: some-value
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `blackListMode`
|
|
||||||
|
|
||||||
Define the blackListMode
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.blackListMode` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
blackListMode: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `silentStartUp`
|
|
||||||
|
|
||||||
Define the silentStartUp
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.silentStartUp` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
silentStartUp: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `addCountryHeader`
|
|
||||||
|
|
||||||
Define the addCountryHeader
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.addCountryHeader` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
addCountryHeader: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `countries`
|
|
||||||
|
|
||||||
Define the countries
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.countries` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
countries:
|
|
||||||
- some-country
|
|
||||||
- some-other-country
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: plugin-geoblock
|
|
||||||
data:
|
|
||||||
api: https://api.geoblock.org/v2/geoblock
|
|
||||||
allowLocalRequests: true
|
|
||||||
logLocalRequests: true
|
|
||||||
logAllowedRequests: true
|
|
||||||
logApiRequests: true
|
|
||||||
apiTimeoutMs: 1000
|
|
||||||
cacheSize: 1000
|
|
||||||
forceMonthlyUpdate: true
|
|
||||||
allowUnknownCountries: true
|
|
||||||
unknownCountryApiResponse: some-value
|
|
||||||
blackListMode: some-value
|
|
||||||
silentStartUp: true
|
|
||||||
addCountryHeader: true
|
|
||||||
countries:
|
|
||||||
- some-country
|
|
||||||
- some-other-country
|
|
||||||
```
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
---
|
|
||||||
title: Plugin Mod Security Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/plugin-mod-security#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://github.com/acouvreur/traefik-modsecurity-plugin)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: plugin-mod-security`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `pluginName`
|
|
||||||
|
|
||||||
Define the pluginName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.pluginName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `traefik-modsecurity-plugin` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `modSecurityUrl`
|
|
||||||
|
|
||||||
Define the modSecurityUrl
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.modSecurityUrl` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
modSecurityUrl: https://example.com
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `timeoutMillis`
|
|
||||||
|
|
||||||
Define the timeoutMillis
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.timeoutMillis` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
timeoutMillis: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `maxBodySize`
|
|
||||||
|
|
||||||
Define the maxBodySize
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.maxBodySize` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
maxBodySize: 1024
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: plugin-mod-security
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
modSecurityUrl: https://example.com
|
|
||||||
timeoutMillis: 1000
|
|
||||||
maxBodySize: 1024
|
|
||||||
```
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
---
|
|
||||||
title: Plugin Real IP Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/plugin-theme-park#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://github.com/jramsgz/traefik-real-ip)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: plugin-real-ip`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `pluginName`
|
|
||||||
|
|
||||||
Define the pluginName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.pluginName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `traefik-real-ip` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `excludednets`
|
|
||||||
|
|
||||||
Define the excludednets
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.excludednets` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
excludednets:
|
|
||||||
- some-excluded-net
|
|
||||||
- some-other-excluded-net
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: plugin-real-ip
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
excludednets:
|
|
||||||
- some-excluded-net
|
|
||||||
- some-other-excluded-net
|
|
||||||
```
|
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
---
|
|
||||||
title: Plugin Rewrite Response Headers Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/plugin-rewrite-response-headers#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://github.com/XciD/traefik-plugin-rewrite-headers/)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: plugin-rewrite-response-headers`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `pluginName`
|
|
||||||
|
|
||||||
Define the pluginName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.pluginName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `rewriteResponseHeaders` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `rewrites`
|
|
||||||
|
|
||||||
Define the rewrites
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.rewrites` |
|
|
||||||
| Type | `list` of `map` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
rewrites:
|
|
||||||
- header: some-header
|
|
||||||
regex: some-regex
|
|
||||||
replacement: some-replacement
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `rewrites[].header`
|
|
||||||
|
|
||||||
Define the header
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.rewrites.header` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
rewrites:
|
|
||||||
- header: some-header
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `rewrites[].regex`
|
|
||||||
|
|
||||||
Define the regex
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.regex` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
rewrites:
|
|
||||||
- regex: some-regex
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `rewrites[].replacement`
|
|
||||||
|
|
||||||
Define the replacement
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.replacement` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
rewrites:
|
|
||||||
- replacement: some-replacement
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: plugin-rewrite-response-headers
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
rewrites:
|
|
||||||
- header: some-header
|
|
||||||
regex: some-regex
|
|
||||||
replacement: some-replacement
|
|
||||||
- header: some-other-header
|
|
||||||
regex: some-other-regex
|
|
||||||
replacement: some-other-replacement
|
|
||||||
```
|
|
||||||
@@ -1,158 +0,0 @@
|
|||||||
---
|
|
||||||
title: Plugin Theme Park Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/plugin-theme-park#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://github.com/packruler/traefik-themepark)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: plugin-theme-park`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `pluginName`
|
|
||||||
|
|
||||||
Define the pluginName
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.pluginName` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | `traefik-themepark` |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `app`
|
|
||||||
|
|
||||||
Define the app
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.app` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
app: sonarr
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `theme`
|
|
||||||
|
|
||||||
Define the theme
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.theme` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
theme: dark
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `baseUrl`
|
|
||||||
|
|
||||||
Define the baseUrl
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.baseUrl` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
baseUrl: https://example.com
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `addons`
|
|
||||||
|
|
||||||
Define the addons
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.addons` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
addons:
|
|
||||||
- some-addon
|
|
||||||
- some-other-addon
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: plugin-theme-park
|
|
||||||
data:
|
|
||||||
pluginName: my-plugin-name
|
|
||||||
app: sonarr
|
|
||||||
theme: dark
|
|
||||||
baseUrl: https://example.com
|
|
||||||
addons:
|
|
||||||
- some-addon
|
|
||||||
- some-other-addon
|
|
||||||
```
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
---
|
|
||||||
title: Rate Limit Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/rate-limit#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ratelimit)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: rate-limit`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `average`
|
|
||||||
|
|
||||||
Define the average rate limit
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | -------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.average` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
average: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `burst`
|
|
||||||
|
|
||||||
Define the burst rate limit
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.burst` |
|
|
||||||
| Type | `int` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
burst: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: rate-limit
|
|
||||||
data:
|
|
||||||
average: 1000
|
|
||||||
burst: 1000
|
|
||||||
```
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
---
|
|
||||||
title: Redirect Regex Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/redirect-regex#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/redirectregex)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: redirect-regex`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `regex`
|
|
||||||
|
|
||||||
Define the regex
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.regex` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
regex: some-regex
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `replacement`
|
|
||||||
|
|
||||||
Define the replacement
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.replacement` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
replacement: some-replacement
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `permanent`
|
|
||||||
|
|
||||||
Define the permanent
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.permanent` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
permanent: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: redirect-regex
|
|
||||||
data:
|
|
||||||
regex: some-regex
|
|
||||||
replacement: some-replacement
|
|
||||||
permanent: true
|
|
||||||
```
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
---
|
|
||||||
title: Redirect Scheme Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/redirect-scheme#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/redirectscheme)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: redirect-scheme`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `scheme`
|
|
||||||
|
|
||||||
Define the scheme
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.scheme` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
scheme: https
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `permanent`
|
|
||||||
|
|
||||||
Define the permanent
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.permanent` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
permanent: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: redirect-scheme
|
|
||||||
data:
|
|
||||||
scheme: https
|
|
||||||
permanent: true
|
|
||||||
```
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
---
|
|
||||||
title: Replace Path Regex Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/replace-path-regex#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/replacepathregex)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: replace-path-regex`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `regex`
|
|
||||||
|
|
||||||
Define the regex
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.regex` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
regex: /some-path
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `replacement`
|
|
||||||
|
|
||||||
Define the replacement
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.replacement` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
replacement: /some-replacement
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: replace-path-regex
|
|
||||||
data:
|
|
||||||
regex: /some-path
|
|
||||||
replacement: /some-replacement
|
|
||||||
```
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
title: Replace Path Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/replace-path#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/replacepath)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: replace-path`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `path`
|
|
||||||
|
|
||||||
Define the path
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.path` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
path: /some-path
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: replace-path
|
|
||||||
data:
|
|
||||||
path: /some-path
|
|
||||||
```
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
---
|
|
||||||
title: Retry Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/retry#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/retry)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: retry`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `attempts`
|
|
||||||
|
|
||||||
Define the path
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | --------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.attempts` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
attempts: 3
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `initialInterval`
|
|
||||||
|
|
||||||
Define the initialInterval
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ---------------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.initialInterval` |
|
|
||||||
| Type | `string` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
initialInterval: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: retry
|
|
||||||
data:
|
|
||||||
attempts: 3
|
|
||||||
initialInterval: 1000
|
|
||||||
```
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
---
|
|
||||||
title: Strip Prefix Regex Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/strip-prefix-regex#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/stripprefixregex)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: strip-prefix-regex`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `regex`
|
|
||||||
|
|
||||||
Define the regexes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------ |
|
|
||||||
| Key | `middlewares.$name.data.regex` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
regex:
|
|
||||||
- some-regex
|
|
||||||
- some-other-regex
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: strip-prefix-regex
|
|
||||||
data:
|
|
||||||
regex:
|
|
||||||
- some-regex
|
|
||||||
- some-other-regex
|
|
||||||
```
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
---
|
|
||||||
title: Strip Prefix Middleware
|
|
||||||
---
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
|
||||||
- See the [Full Examples](/common/middlewares/strip-prefix#full-examples) section for complete examples.
|
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/stripprefix)
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Appears in
|
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
- See available middleware keys [here](/common/middlewares).
|
|
||||||
- This options apply only when `type: strip-prefix`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `prefix`
|
|
||||||
|
|
||||||
Define the prefixes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.prefix` |
|
|
||||||
| Type | `list` of `string` |
|
|
||||||
| Required | ✅ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
prefix:
|
|
||||||
- /some-prefix
|
|
||||||
- /some-other-prefix
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## `forceSlash`
|
|
||||||
|
|
||||||
Define the forceSlash
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| ---------- | ----------------------------------- |
|
|
||||||
| Key | `middlewares.$name.data.forceSlash` |
|
|
||||||
| Type | `bool` |
|
|
||||||
| Required | ❌ |
|
|
||||||
| Helm `tpl` | ❌ |
|
|
||||||
| Default | - |
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
data:
|
|
||||||
forceSlash: true
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Full Examples
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
middlewares:
|
|
||||||
middleware-name:
|
|
||||||
enabled: true
|
|
||||||
type: strip-prefix
|
|
||||||
data:
|
|
||||||
prefix:
|
|
||||||
- /some-prefix
|
|
||||||
- /some-other-prefix
|
|
||||||
forceSlash: true
|
|
||||||
```
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
title: Add Prefix Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/add-prefix#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/addprefix)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: add-prefix`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `prefix`
|
||||||
|
|
||||||
|
Define the prefix
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.prefix` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
prefix: some-prefix
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: add-prefix
|
||||||
|
data:
|
||||||
|
prefix: some-prefix
|
||||||
|
```
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
---
|
||||||
|
title: Basic Auth Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/basic-auth#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/basicauth)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: basic-auth`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `users`
|
||||||
|
|
||||||
|
Define the users
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
If this is set, the `secret` key must not be set.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.users` |
|
||||||
|
| Type | `list` of `map` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
users:
|
||||||
|
- username: some-username
|
||||||
|
password: some-password
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `users[].username`
|
||||||
|
|
||||||
|
Define the username
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.users.username` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
users:
|
||||||
|
- username: some-username
|
||||||
|
password: some-password
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `users[].password`
|
||||||
|
|
||||||
|
Define the password
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.users.password` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
users:
|
||||||
|
- username: some-username
|
||||||
|
password: some-password
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `secret`
|
||||||
|
|
||||||
|
Define the secret
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
If this is set, the `users` key must not be set.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.secret` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
secret: some-secret
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name1:
|
||||||
|
enabled: true
|
||||||
|
type: basic-auth
|
||||||
|
data:
|
||||||
|
users:
|
||||||
|
- username: some-username
|
||||||
|
password: some-password
|
||||||
|
middleware-name2:
|
||||||
|
enabled: true
|
||||||
|
type: basic-auth
|
||||||
|
data:
|
||||||
|
secret: some-secret
|
||||||
|
```
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
---
|
||||||
|
title: Buffering Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/buffering#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/buffering)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: buffering`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `maxRequestBodyBytes`
|
||||||
|
|
||||||
|
Define the maxRequestBodyBytes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.maxRequestBodyBytes` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
maxRequestBodyBytes: 1024
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `memRequestBodyBytes`
|
||||||
|
|
||||||
|
Define the memRequestBodyBytes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.memRequestBodyBytes` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
memRequestBodyBytes: 1024
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `maxResponseBodyBytes`
|
||||||
|
|
||||||
|
Define the maxResponseBodyBytes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.maxResponseBodyBytes` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
maxResponseBodyBytes: 1024
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `memResponseBodyBytes`
|
||||||
|
|
||||||
|
Define the memResponseBodyBytes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.memResponseBodyBytes` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
memResponseBodyBytes: 1024
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `retryExpression`
|
||||||
|
|
||||||
|
Define the retryExpression
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.retryExpression` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
retryExpression: "some-expression"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: buffering
|
||||||
|
data:
|
||||||
|
maxRequestBodyBytes: 1024
|
||||||
|
memRequestBodyBytes: 1024
|
||||||
|
maxResponseBodyBytes: 1024
|
||||||
|
memResponseBodyBytes: 1024
|
||||||
|
retryExpression: "some-expression"
|
||||||
|
```
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
---
|
||||||
|
title: Chain Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/chain#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/chain)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: chain`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `middlewares`
|
||||||
|
|
||||||
|
Define the middlewares
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.middlewares` |
|
||||||
|
| Type | `list` of `map` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
middlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
middlewares: []
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `middlewares[].name`
|
||||||
|
|
||||||
|
Define the middleware name
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.middlewares.name` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
middlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
middlewares:
|
||||||
|
- name: some-name
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `middlewares[].expandObjectName`
|
||||||
|
|
||||||
|
Define the middleware expandObjectName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.middlewares.expandObjectName` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `true` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
middlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
middlewares:
|
||||||
|
- name: some-name
|
||||||
|
expandObjectName: false
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
middlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: chain
|
||||||
|
data:
|
||||||
|
middlewares:
|
||||||
|
- name: some-middleware
|
||||||
|
- name: some-other-middleware
|
||||||
|
expandObjectName: false
|
||||||
|
```
|
||||||
+7
-6
@@ -5,14 +5,14 @@ title: Compress Middleware
|
|||||||
:::note
|
:::note
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
- Examples under each key are only to be used as a placement guide
|
||||||
- See the [Full Examples](/common/middlewares/compress#full-examples) section for complete examples.
|
- See the [Full Examples](/common/middlewares/traefik/compress#full-examples) section for complete examples.
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/compress)
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/compress)
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Appears in
|
## Appears in
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
|
|
||||||
@@ -26,8 +26,9 @@ title: Compress Middleware
|
|||||||
## Full Examples
|
## Full Examples
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
enabled: true
|
middleware-name:
|
||||||
type: compress
|
enabled: true
|
||||||
|
type: compress
|
||||||
```
|
```
|
||||||
+7
-6
@@ -5,14 +5,14 @@ title: Content Type Middleware
|
|||||||
:::note
|
:::note
|
||||||
|
|
||||||
- Examples under each key are only to be used as a placement guide
|
- Examples under each key are only to be used as a placement guide
|
||||||
- See the [Full Examples](/common/middlewares/content-type#full-examples) section for complete examples.
|
- See the [Full Examples](/common/middlewares/traefik/content-type#full-examples) section for complete examples.
|
||||||
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/contenttype)
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/contenttype)
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Appears in
|
## Appears in
|
||||||
|
|
||||||
- `.Values.middlewares.$name.data`
|
- `.Values.ingressMiddlewares.$name.data`
|
||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
|
|
||||||
@@ -26,8 +26,9 @@ title: Content Type Middleware
|
|||||||
## Full Examples
|
## Full Examples
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
middlewares:
|
ingressMiddlewares:
|
||||||
middleware-name:
|
traefik:
|
||||||
enabled: true
|
middleware-name:
|
||||||
type: content-type
|
enabled: true
|
||||||
|
type: content-type
|
||||||
```
|
```
|
||||||
@@ -0,0 +1,215 @@
|
|||||||
|
---
|
||||||
|
title: Forward Auth Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/forward-auth#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/forwardauth)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: forward-auth`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `address`
|
||||||
|
|
||||||
|
Define the address
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.address` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
address: some-address
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `authResponseHeadersRegex`
|
||||||
|
|
||||||
|
Define the authResponseHeadersRegex
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.authResponseHeadersRegex` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
authResponseHeadersRegex: some-regex
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `trustForwardHeader`
|
||||||
|
|
||||||
|
Define the trustForwardHeader
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.trustForwardHeader` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `false` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
trustForwardHeader: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `authResponseHeaders`
|
||||||
|
|
||||||
|
Define the authResponseHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.authResponseHeaders` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `[]` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
authResponseHeaders:
|
||||||
|
- some-header
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `authRequestHeaders`
|
||||||
|
|
||||||
|
Define the authRequestHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.authRequestHeaders` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `[]` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
authRequestHeaders:
|
||||||
|
- some-header
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `tls`
|
||||||
|
|
||||||
|
Define the tls
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.tls` |
|
||||||
|
| Type | `map` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `{}` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
tls: {}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `tls.insecureSkipVerify`
|
||||||
|
|
||||||
|
Define the tls.insecureSkipVerify
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.tls.insecureSkipVerify` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `false` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
tls:
|
||||||
|
insecureSkipVerify: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: forward-auth
|
||||||
|
data:
|
||||||
|
address: some-address
|
||||||
|
authResponseHeadersRegex: some-regex
|
||||||
|
trustForwardHeader: true
|
||||||
|
authResponseHeaders:
|
||||||
|
- some-header
|
||||||
|
authRequestHeaders:
|
||||||
|
- some-header
|
||||||
|
tls:
|
||||||
|
insecureSkipVerify: true
|
||||||
|
```
|
||||||
@@ -0,0 +1,777 @@
|
|||||||
|
---
|
||||||
|
title: Headers Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/headers#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/headers)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: headers`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `customRequestHeaders`
|
||||||
|
|
||||||
|
Define the customRequestHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.customRequestHeaders` |
|
||||||
|
| Type | `map` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
customRequestHeaders:
|
||||||
|
some-name: some-value
|
||||||
|
some-other-name: some-other-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `customResponseHeaders`
|
||||||
|
|
||||||
|
Define the customResponseHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.customResponseHeaders` |
|
||||||
|
| Type | `map` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
customResponseHeaders:
|
||||||
|
some-name: some-value
|
||||||
|
some-other-name: some-other-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlAllowCredentials`
|
||||||
|
|
||||||
|
Define the accessControlAllowCredentials
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowCredentials` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlAllowCredentials: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlAllowHeaders`
|
||||||
|
|
||||||
|
Define the accessControlAllowHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowHeaders` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlAllowHeaders:
|
||||||
|
- some-header
|
||||||
|
- some-other-header
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlAllowMethods`
|
||||||
|
|
||||||
|
Define the accessControlAllowMethods
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowMethods` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlAllowMethods:
|
||||||
|
- GET
|
||||||
|
- POST
|
||||||
|
- PUT
|
||||||
|
- DELETE
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlAllowOriginList`
|
||||||
|
|
||||||
|
Define the accessControlAllowOriginList
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowOriginList` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlAllowOriginList:
|
||||||
|
- some-origin
|
||||||
|
- some-other-origin
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlAllowOriginListRegex`
|
||||||
|
|
||||||
|
Define the accessControlAllowOriginListRegex
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlAllowOriginList` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlAllowOriginListRegex:
|
||||||
|
- some-origin-regex
|
||||||
|
- some-other-origin-regex
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlExposeHeaders`
|
||||||
|
|
||||||
|
Define the accessControlExposeHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlExposeHeaders` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlExposeHeaders:
|
||||||
|
- some-header
|
||||||
|
- some-other-header
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `accessControlMaxAge`
|
||||||
|
|
||||||
|
Define the accessControlMaxAge
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.accessControlMaxAge` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
accessControlMaxAge: 1000
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `addVaryHeader`
|
||||||
|
|
||||||
|
Define the addVaryHeader
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.addVaryHeader` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
addVaryHeader: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `allowedHosts`
|
||||||
|
|
||||||
|
Define the allowedHosts
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.allowedHosts` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
allowedHosts:
|
||||||
|
- some-host
|
||||||
|
- some-other-host
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `hostsProxyHeaders`
|
||||||
|
|
||||||
|
Define the hostsProxyHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.hostsProxyHeaders` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
hostsProxyHeaders:
|
||||||
|
- some-header
|
||||||
|
- some-other-header
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `sslProxyHeaders`
|
||||||
|
|
||||||
|
Define the sslProxyHeaders
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.sslProxyHeaders` |
|
||||||
|
| Type | `map` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
sslProxyHeaders:
|
||||||
|
some-header: some-value
|
||||||
|
some-other-header: some-other-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `stsSeconds`
|
||||||
|
|
||||||
|
Define the stsSeconds
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.stsSeconds` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
stsSeconds: 1000
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `stsIncludeSubdomains`
|
||||||
|
|
||||||
|
Define the stsIncludeSubdomains
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.stsIncludeSubdomains` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
stsIncludeSubdomains: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `stsPreload`
|
||||||
|
|
||||||
|
Define the stsPreload
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.stsPreload` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
stsPreload: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `forceSTSHeader`
|
||||||
|
|
||||||
|
Define the forceSTSHeader
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.forceSTSHeader` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
forceSTSHeader: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `frameDeny`
|
||||||
|
|
||||||
|
Define the frameDeny
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.frameDeny` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
frameDeny: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `customFrameOptionsValue`
|
||||||
|
|
||||||
|
Define the customFrameOptionsValue
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.customFrameOptionsValue` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
customFrameOptionsValue: some-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `contentTypeNosniff`
|
||||||
|
|
||||||
|
Define the contentTypeNosniff
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.contentTypeNosniff` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
contentTypeNosniff: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `browserXssFilter`
|
||||||
|
|
||||||
|
Define the browserXssFilter
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.browserXssFilter` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
browserXssFilter: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `customBrowserXSSValue`
|
||||||
|
|
||||||
|
Define the customBrowserXSSValue
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.customBrowserXSSValue` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
customBrowserXSSValue: some-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `contentSecurityPolicy`
|
||||||
|
|
||||||
|
Define the contentSecurityPolicy
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.contentSecurityPolicy` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
contentSecurityPolicy: some-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `contentSecurityPolicyReportOnly`
|
||||||
|
|
||||||
|
Define the contentSecurityPolicyReportOnly
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.contentSecurityPolicy` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
contentSecurityPolicyReportOnly: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `publicKey`
|
||||||
|
|
||||||
|
Define the publicKey
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.publicKey` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
publicKey: some-public-key
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `referrerPolicy`
|
||||||
|
|
||||||
|
Define the referrerPolicy
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.referrerPolicy` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
referrerPolicy: some-referrer-policy
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `permissionsPolicy`
|
||||||
|
|
||||||
|
Define the permissionsPolicy
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.permissionsPolicy` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
permissionsPolicy: some-permissions-policy
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `isDevelopment`
|
||||||
|
|
||||||
|
Define the isDevelopment
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.isDevelopment` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
isDevelopment: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: headers
|
||||||
|
data:
|
||||||
|
customRequestHeaders:
|
||||||
|
some-name: some-value
|
||||||
|
some-other-name: some-other-value
|
||||||
|
customResponseHeaders:
|
||||||
|
some-name: some-value
|
||||||
|
some-other-name: some-other-value
|
||||||
|
accessControlAllowCredentials: true
|
||||||
|
accessControlAllowHeaders:
|
||||||
|
- some-header
|
||||||
|
- some-other-header
|
||||||
|
accessControlAllowMethods:
|
||||||
|
- GET
|
||||||
|
- DELETE
|
||||||
|
accessControlAllowOriginList:
|
||||||
|
- some-origin
|
||||||
|
- some-other-origin
|
||||||
|
accessControlAllowOriginListRegex:
|
||||||
|
- some-origin-regex
|
||||||
|
- some-other-origin-regex
|
||||||
|
accessControlExposeHeaders:
|
||||||
|
- some-header
|
||||||
|
- some-other-header
|
||||||
|
accessControlMaxAge: 1000
|
||||||
|
addVaryHeader: true
|
||||||
|
allowedHosts:
|
||||||
|
- some-host
|
||||||
|
- some-other-host
|
||||||
|
hostsProxyHeaders:
|
||||||
|
- some-header
|
||||||
|
- some-other-header
|
||||||
|
sslProxyHeaders:
|
||||||
|
some-header: some-value
|
||||||
|
some-other-header: some-other-value
|
||||||
|
stsSeconds: 1000
|
||||||
|
stsIncludeSubdomains: true
|
||||||
|
stsPreload: true
|
||||||
|
forceSTSHeader: true
|
||||||
|
frameDeny: true
|
||||||
|
customFrameOptionsValue: some-value
|
||||||
|
contentTypeNosniff: true
|
||||||
|
browserXssFilter: true
|
||||||
|
customBrowserXSSValue: some-value
|
||||||
|
contentSecurityPolicy: some-value
|
||||||
|
contentSecurityPolicyReportOnly: true
|
||||||
|
publicKey: some-public-key
|
||||||
|
referrerPolicy: some-referrer-policy
|
||||||
|
permissionsPolicy: some-permissions-policy
|
||||||
|
isDevelopment: true
|
||||||
|
```
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
---
|
||||||
|
title: Traefik Middlewares
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik#full-examples) section for complete examples.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- Replace references to `$name` with the actual name you want to use.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `type`
|
||||||
|
|
||||||
|
Define the type for this object
|
||||||
|
|
||||||
|
Available types:
|
||||||
|
|
||||||
|
- [add-prefix](/common/middlewares/traefik/add-prefix)
|
||||||
|
- [basic-auth](/common/middlewares/traefik/basic-auth)
|
||||||
|
- [buffering](/common/middlewares/traefik/buffering)
|
||||||
|
- [chain](/common/middlewares/traefik/chain)
|
||||||
|
- [compress](/common/middlewares/traefik/compress)
|
||||||
|
- [content-type](/common/middlewares/traefik/content-type)
|
||||||
|
- [forward-auth](/common/middlewares/traefik/forward-auth)
|
||||||
|
- [headers](/common/middlewares/traefik/headers)
|
||||||
|
- [ip-allow-list](/common/middlewares/traefik/ip-allow-list)
|
||||||
|
- [plugin-bouncer](/common/middlewares/traefik/plugin-bouncer)
|
||||||
|
- [plugin-geoblock](/common/middlewares/traefik/plugin-geoblock)
|
||||||
|
- [plugin-mod-security](/common/middlewares/traefik/plugin-mod-security)
|
||||||
|
- [plugin-real-ip](/common/middlewares/traefik/plugin-real-ip)
|
||||||
|
- [plugin-rewrite-response-headers](/common/middlewares/traefik/plugin-rewrite-response-headers)
|
||||||
|
- [plugin-theme-park](/common/middlewares/traefik/plugin-theme-park)
|
||||||
|
- [rate-limit](/common/middlewares/traefik/rate-limit)
|
||||||
|
- [redirect-regex](/common/middlewares/traefik/redirect-regex)
|
||||||
|
- [redirect-scheme](/common/middlewares/traefik/redirect-scheme)
|
||||||
|
- [replace-path-regex](/common/middlewares/traefik/replace-path-regex)
|
||||||
|
- [replace-path](/common/middlewares/traefik/replace-path)
|
||||||
|
- [retry](/common/middlewares/traefik/retry)
|
||||||
|
- [strip-prefix-regex](/common/middlewares/traefik/strip-prefix-regex)
|
||||||
|
- [strip-prefix](/common/middlewares/traefik/strip-prefix)
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.$provider.$name.type` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `""` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
type: buffering
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: buffering
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
```
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
---
|
||||||
|
title: IP Allow List Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/ip-allow-list#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/ipallowlist)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: ip-allow-list`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `sourceRange`
|
||||||
|
|
||||||
|
Define the sourceRange
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.sourceRange` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
sourceRange:
|
||||||
|
- some-source-range
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `ipStrategy`
|
||||||
|
|
||||||
|
Define the ipStrategy
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.ipStrategy` |
|
||||||
|
| Type | `map` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `{}` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
ipStrategy: {}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `ipStrategy.depth`
|
||||||
|
|
||||||
|
Define the ipStrategy.depth
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.ipStrategy.depth` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
ipStrategy:
|
||||||
|
depth: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `ipStrategy.excludedIPs`
|
||||||
|
|
||||||
|
Define the ipStrategy.excludedIPs
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.ipStrategy.excludedIPs` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
ipStrategy:
|
||||||
|
excludedIPs:
|
||||||
|
- some-excluded-ip
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: ip-allow-list
|
||||||
|
data:
|
||||||
|
sourceRange:
|
||||||
|
- some-source-range
|
||||||
|
ipStrategy:
|
||||||
|
depth: 1
|
||||||
|
excludedIPs:
|
||||||
|
- some-excluded-ip
|
||||||
|
```
|
||||||
@@ -0,0 +1,972 @@
|
|||||||
|
---
|
||||||
|
title: Plugin Bouncer Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/plugin-bouncer#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: plugin-bouncer`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `pluginName`
|
||||||
|
|
||||||
|
Define the pluginName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `bouncer` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
pluginName: my-plugin-name
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `enabled`
|
||||||
|
|
||||||
|
Define the enabled
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.enabled` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
enabled: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `logLevel`
|
||||||
|
|
||||||
|
Define the logLevel
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.logLevel` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
logLevel: DEBUG
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `updateIntervalSeconds`
|
||||||
|
|
||||||
|
Define the updateIntervalSeconds
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.updateIntervalSeconds` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
updateIntervalSeconds: 60
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `updateMaxFailure`
|
||||||
|
|
||||||
|
Define the updateMaxFailure
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.updateMaxFailure` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
updateMaxFailure: 0
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `defaultDecisionSeconds`
|
||||||
|
|
||||||
|
Define the defaultDecisionSeconds
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.defaultDecisionSeconds` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
defaultDecisionSeconds: 60
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `httpTimeoutSeconds`
|
||||||
|
|
||||||
|
Define the httpTimeoutSeconds
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.httpTimeoutSeconds` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
httpTimeoutSeconds: 10
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecMode`
|
||||||
|
|
||||||
|
Define the crowdsecMode
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsec` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecMode: live
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecAppsecEnabled`
|
||||||
|
|
||||||
|
Define the crowdsecAppsecEnabled
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecEnabled` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecAppsecEnabled: false
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecAppsecHost`
|
||||||
|
|
||||||
|
Define the crowdsecAppsecHost
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecHost` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecAppsecHost: crowdsec:7422
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecAppsecFailureBlock`
|
||||||
|
|
||||||
|
Define the crowdsecAppsecFailureBlock
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecFailureBlock` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecAppsecFailureBlock: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecAppsecUnreachableBlock`
|
||||||
|
|
||||||
|
Define the crowdsecAppsecUnreachableBlock
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecAppsecUnreachableBlock` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecAppsecUnreachableBlock: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiKey`
|
||||||
|
|
||||||
|
Define the crowdsecLapiKey
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiKey` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiKey: privateKey-foo
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiHost`
|
||||||
|
|
||||||
|
Define the crowdsecLapiHost
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiHost` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiHost: crowdsec:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiScheme`
|
||||||
|
|
||||||
|
Define the crowdsecLapiScheme
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsec` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiScheme: http
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiTLSInsecureVerify`
|
||||||
|
|
||||||
|
Define the crowdsecLapiTLSInsecureVerify
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSInsecureVerify` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiTLSInsecureVerify: false
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecCapiMachineId`
|
||||||
|
|
||||||
|
Define the crowdsecCapiMachineId
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecCapiMachineId` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecCapiMachineId: login
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecCapiPassword`
|
||||||
|
|
||||||
|
Define the crowdsecCapiPassword
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecCapiPassword` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecCapiPassword: password
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecCapiScenarios`
|
||||||
|
|
||||||
|
Define the crowdsecCapiScenarios
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecCapiScenarios` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecCapiScenarios:
|
||||||
|
- crowdsecurity/http-path-traversal-probing
|
||||||
|
- crowdsecurity/http-xss-probing
|
||||||
|
- crowdsecurity/http-generic-bf
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `forwardedHeadersTrustedIPs`
|
||||||
|
|
||||||
|
Define the forwardedHeadersTrustedIPs
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.forwardedHeadersTrustedIPs` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
forwardedHeadersTrustedIPs:
|
||||||
|
- 10.0.10.23/32
|
||||||
|
- 10.0.20.0/24
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `clientTrustedIPs`
|
||||||
|
|
||||||
|
Define the clientTrustedIPs
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.clientTrustedIPs` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
clientTrustedIPs:
|
||||||
|
- 192.168.1.0/24
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `forwardedHeadersCustomName`
|
||||||
|
|
||||||
|
Define the forwardedHeadersCustomName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.forwardedHeadersCustomName` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
forwardedHeadersCustomName: X-Custom-Header
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `remediationHeadersCustomName`
|
||||||
|
|
||||||
|
Define the remediationHeadersCustomName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.remediationHeadersCustomName` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
remediationHeadersCustomName: cs-remediation
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `redisCacheEnabled`
|
||||||
|
|
||||||
|
Define the redisCacheEnabled
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.redisCacheEnabled` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
redisCacheEnabled: false
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `redisCacheHost`
|
||||||
|
|
||||||
|
Define the redisCacheHost
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.redisCacheHost` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
redisCacheHost: "redis:6379"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `redisCachePassword`
|
||||||
|
|
||||||
|
Define the redisCachePassword
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.redisCachePassword` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
redisCachePassword: password
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `redisCacheDatabase`
|
||||||
|
|
||||||
|
Define the redisCacheDatabase
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.redisCacheDatabase` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
redisCacheDatabase: "5"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiTLSCertificateAuthority`
|
||||||
|
|
||||||
|
Define the crowdsecLapiTLSCertificateAuthority
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSCertificateAuthority` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiTLSCertificateAuthority: |-
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
||||||
|
...
|
||||||
|
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiTLSCertificateBouncer`
|
||||||
|
|
||||||
|
Define the crowdsecLapiTLSCertificateBouncer
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSCertificateBouncer` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiTLSCertificateBouncer: |-
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
||||||
|
...
|
||||||
|
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
||||||
|
N2U=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `crowdsecLapiTLSCertificateBouncerKey`
|
||||||
|
|
||||||
|
Define the crowdsecLapiTLSCertificateBouncerKey
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.crowdsecLapiTLSCertificateBouncerKey` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
crowdsecLapiTLSCertificateBouncerKey: |-
|
||||||
|
-----BEGIN TOTALY NOT A SECRET-----
|
||||||
|
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
||||||
|
...
|
||||||
|
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
||||||
|
-----END TOTALY NOT A SECRET-----
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `captchaProvider`
|
||||||
|
|
||||||
|
Define the captchaProvider
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.captchaProvider` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
captchaProvider: hcaptcha
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `captchaSiteKey`
|
||||||
|
|
||||||
|
Define the captchaSiteKey
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.captchaSiteKey` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
captchaSiteKey: FIXME
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `captchaSecretKey`
|
||||||
|
|
||||||
|
Define the captchaSecretKey
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.captchaSecretKey` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
captchaSecretKey: FIXME
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `captchaGracePeriodSeconds`
|
||||||
|
|
||||||
|
Define the captchaGracePeriodSeconds
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.captchaGracePeriodSeconds` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
captchaGracePeriodSeconds: 1800
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `captchaHTMLFilePath`
|
||||||
|
|
||||||
|
Define the captchaHTMLFilePath
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.captchaHTMLFilePath` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
captchaHTMLFilePath: /captcha.html
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `banHTMLFilePath`
|
||||||
|
|
||||||
|
Define the banHTMLFilePath
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.banHTMLFilePath` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
banHTMLFilePath: /ban.html
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: plugin-bouncer
|
||||||
|
data:
|
||||||
|
enabled: true
|
||||||
|
logLevel: DEBUG
|
||||||
|
updateIntervalSeconds: 60
|
||||||
|
updateMaxFailure: 0
|
||||||
|
defaultDecisionSeconds: 60
|
||||||
|
httpTimeoutSeconds: 10
|
||||||
|
crowdsecMode: live
|
||||||
|
crowdsecAppsecEnabled: false
|
||||||
|
crowdsecAppsecHost: crowdsec:7422
|
||||||
|
crowdsecAppsecFailureBlock: true
|
||||||
|
crowdsecAppsecUnreachableBlock: true
|
||||||
|
crowdsecLapiKey: privateKey-foo
|
||||||
|
crowdsecLapiHost: crowdsec:8080
|
||||||
|
crowdsecLapiScheme: http
|
||||||
|
crowdsecLapiTLSInsecureVerify: false
|
||||||
|
crowdsecCapiMachineId: login
|
||||||
|
crowdsecCapiPassword: password
|
||||||
|
crowdsecCapiScenarios:
|
||||||
|
- crowdsecurity/http-path-traversal-probing
|
||||||
|
- crowdsecurity/http-xss-probing
|
||||||
|
- crowdsecurity/http-generic-bf
|
||||||
|
forwardedHeadersTrustedIPs:
|
||||||
|
- 10.0.10.23/32
|
||||||
|
- 10.0.20.0/24
|
||||||
|
clientTrustedIPs:
|
||||||
|
- 192.168.1.0/24
|
||||||
|
forwardedHeadersCustomName: X-Custom-Header
|
||||||
|
remediationHeadersCustomName: cs-remediation
|
||||||
|
redisCacheEnabled: false
|
||||||
|
redisCacheHost: "redis:6379"
|
||||||
|
redisCachePassword: password
|
||||||
|
redisCacheDatabase: "5"
|
||||||
|
crowdsecLapiTLSCertificateAuthority: |-
|
||||||
|
-----BEGIN TOTALY NOT A CERT-----
|
||||||
|
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
||||||
|
...
|
||||||
|
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
||||||
|
-----END TOTALY NOT A CERT-----
|
||||||
|
crowdsecLapiTLSCertificateBouncer: |-
|
||||||
|
-----BEGIN TOTALY NOT A CERT-----
|
||||||
|
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
||||||
|
...
|
||||||
|
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
||||||
|
N2U=
|
||||||
|
-----END TOTALY NOT A CERT-----
|
||||||
|
captchaProvider: hcaptcha
|
||||||
|
captchaSiteKey: FIXME
|
||||||
|
captchaSecretKey: FIXME
|
||||||
|
captchaGracePeriodSeconds: 1800
|
||||||
|
captchaHTMLFilePath: /captcha.html
|
||||||
|
banHTMLFilePath: /ban.html
|
||||||
|
```
|
||||||
@@ -0,0 +1,413 @@
|
|||||||
|
---
|
||||||
|
title: Plugin Geoblock Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/plugin-geoblock#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://github.com/PascalMinder/geoblock)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: plugin-geoblock`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `pluginName`
|
||||||
|
|
||||||
|
Define the pluginName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `GeoBlock` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
pluginName: my-plugin-name
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `api`
|
||||||
|
|
||||||
|
Define the api
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.api` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
api: https://api.geoblock.org/v2/geoblock
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `allowLocalRequests`
|
||||||
|
|
||||||
|
Define the allowLocalRequests
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.allowLocalRequests` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
allowLocalRequests: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `logLocalRequests`
|
||||||
|
|
||||||
|
Define the logLocalRequests
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.logLocalRequests` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
logLocalRequests: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `logAllowedRequests`
|
||||||
|
|
||||||
|
Define the logAllowedRequests
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.logAllowedRequests` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
logAllowedRequests: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `logApiRequests`
|
||||||
|
|
||||||
|
Define the logApiRequests
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.logApiRequests` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
logApiRequests: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `apiTimeoutMs`
|
||||||
|
|
||||||
|
Define the apiTimeoutMs
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.apiTimeoutMs` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
apiTimeoutMs: 1000
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `cacheSize`
|
||||||
|
|
||||||
|
Define the cacheSize
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.cacheSize` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
cacheSize: 1000
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `forceMonthlyUpdate`
|
||||||
|
|
||||||
|
Define the forceMonthlyUpdate
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.forceMonthlyUpdate` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
forceMonthlyUpdate: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `allowUnknownCountries`
|
||||||
|
|
||||||
|
Define the allowUnknownCountries
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.allowUnknownCountries` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
allowUnknownCountries: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `unknownCountryApiResponse`
|
||||||
|
|
||||||
|
Define the unknownCountryApiResponse
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.unknownCountryApiResponse` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
unknownCountryApiResponse: some-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `blackListMode`
|
||||||
|
|
||||||
|
Define the blackListMode
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.blackListMode` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
blackListMode: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `silentStartUp`
|
||||||
|
|
||||||
|
Define the silentStartUp
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.silentStartUp` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
silentStartUp: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `addCountryHeader`
|
||||||
|
|
||||||
|
Define the addCountryHeader
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.addCountryHeader` |
|
||||||
|
| Type | `bool` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
addCountryHeader: true
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `countries`
|
||||||
|
|
||||||
|
Define the countries
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.countries` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
countries:
|
||||||
|
- some-country
|
||||||
|
- some-other-country
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: plugin-geoblock
|
||||||
|
data:
|
||||||
|
api: https://api.geoblock.org/v2/geoblock
|
||||||
|
allowLocalRequests: true
|
||||||
|
logLocalRequests: true
|
||||||
|
logAllowedRequests: true
|
||||||
|
logApiRequests: true
|
||||||
|
apiTimeoutMs: 1000
|
||||||
|
cacheSize: 1000
|
||||||
|
forceMonthlyUpdate: true
|
||||||
|
allowUnknownCountries: true
|
||||||
|
unknownCountryApiResponse: some-value
|
||||||
|
blackListMode: some-value
|
||||||
|
silentStartUp: true
|
||||||
|
addCountryHeader: true
|
||||||
|
countries:
|
||||||
|
- some-country
|
||||||
|
- some-other-country
|
||||||
|
```
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
---
|
||||||
|
title: Plugin Mod Security Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/plugin-mod-security#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://github.com/acouvreur/traefik-modsecurity-plugin)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: plugin-mod-security`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `pluginName`
|
||||||
|
|
||||||
|
Define the pluginName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `traefik-modsecurity-plugin` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
pluginName: my-plugin-name
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `modSecurityUrl`
|
||||||
|
|
||||||
|
Define the modSecurityUrl
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ------------------------------------------------------ |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.modSecurityUrl` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
modSecurityUrl: https://example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `timeoutMillis`
|
||||||
|
|
||||||
|
Define the timeoutMillis
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ----------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.timeoutMillis` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
timeoutMillis: 1000
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `maxBodySize`
|
||||||
|
|
||||||
|
Define the maxBodySize
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | --------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.maxBodySize` |
|
||||||
|
| Type | `int` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
maxBodySize: 1024
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: plugin-mod-security
|
||||||
|
data:
|
||||||
|
pluginName: my-plugin-name
|
||||||
|
modSecurityUrl: https://example.com
|
||||||
|
timeoutMillis: 1000
|
||||||
|
maxBodySize: 1024
|
||||||
|
```
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
---
|
||||||
|
title: Plugin Real IP Middleware
|
||||||
|
---
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
- Examples under each key are only to be used as a placement guide
|
||||||
|
- See the [Full Examples](/common/middlewares/traefik/plugin-theme-park#full-examples) section for complete examples.
|
||||||
|
- Upstream documentation for this middleware can be found [here](https://github.com/jramsgz/traefik-real-ip)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Appears in
|
||||||
|
|
||||||
|
- `.Values.ingressMiddlewares.traefik.$name.data`
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
- See available middleware keys [here](/common/middlewares).
|
||||||
|
- This options apply only when `type: plugin-real-ip`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `pluginName`
|
||||||
|
|
||||||
|
Define the pluginName
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | -------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.pluginName` |
|
||||||
|
| Type | `string` |
|
||||||
|
| Required | ❌ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | `traefik-real-ip` |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
pluginName: my-plugin-name
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `excludednets`
|
||||||
|
|
||||||
|
Define the excludednets
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| ---------- | ---------------------------------------------------- |
|
||||||
|
| Key | `ingressMiddlewares.traefik.$name.data.excludednets` |
|
||||||
|
| Type | `list` of `string` |
|
||||||
|
| Required | ✅ |
|
||||||
|
| Helm `tpl` | ❌ |
|
||||||
|
| Default | - |
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
data:
|
||||||
|
excludednets:
|
||||||
|
- some-excluded-net
|
||||||
|
- some-other-excluded-net
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Examples
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ingressMiddlewares:
|
||||||
|
traefik:
|
||||||
|
middleware-name:
|
||||||
|
enabled: true
|
||||||
|
type: plugin-real-ip
|
||||||
|
data:
|
||||||
|
pluginName: my-plugin-name
|
||||||
|
excludednets:
|
||||||
|
- some-excluded-net
|
||||||
|
- some-other-excluded-net
|
||||||
|
```
|
||||||
+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