feat(common): restructure traefik/ingress middlewares (#31171)
**Description** moves the middlewares around and adds unit tests **⚙️ Type of change** - [x] ⚙️ Feature/App addition - [ ] 🪛 Bugfix - [x] ⚠️ Breaking change (fix or feature that would cause existing functionality to not work as expected) - [x] 🔃 Refactor of current code **🧪 How Has This Been Tested?** <!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration --> **📃 Notes:** <!-- Please enter any other relevant information here --> **✔️ Checklist:** - [ ] ⚖️ My code follows the style guidelines of this project - [ ] 👀 I have performed a self-review of my own code - [ ] #️⃣ I have commented my code, particularly in hard-to-understand areas - [ ] 📄 I have made corresponding changes to the documentation - [ ] ⚠️ My changes generate no new warnings - [ ] 🧪 I have added tests to this description that prove my fix is effective or that my feature works - [ ] ⬆️ I increased versions for any altered app according to semantic versioning - [ ] I made sure the title starts with `feat(chart-name):`, `fix(chart-name):` or `chore(chart-name):` **➕ App addition** If this PR is an app addition please make sure you have done the following. - [ ] 🖼️ I have added an icon in the Chart's root directory called `icon.png` --- _Please don't blindly check all the boxes. Read them and only check those that apply. Those checkboxes are there for the reviewer to see what is this all about and the status of this PR with a quick glance._ --------- Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl> Co-authored-by: Stavros Kois <s.kois@outlook.com> Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
co-authored by
Stavros Kois
Stavros Kois
parent
1d24bd1c0a
commit
a27d735b9d
@@ -7,7 +7,7 @@ apiVersion: v2
|
||||
appVersion: unknown
|
||||
dependencies:
|
||||
- name: common
|
||||
version: ~25.4.0
|
||||
version: ~25.5.0
|
||||
repository: file://../common/
|
||||
condition: ""
|
||||
alias: ""
|
||||
|
||||
@@ -20,18 +20,19 @@ tests:
|
||||
annotations:
|
||||
g_annotation1: global_annotation1
|
||||
g_annotation2: "{{ .Values.annotation2 }}"
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels:
|
||||
label1: "{{ .Values.label1 }}"
|
||||
label2: label2
|
||||
annotations:
|
||||
annotation1: "{{ .Values.annotation1 }}"
|
||||
annotation2: annotation2
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels:
|
||||
label1: "{{ .Values.label1 }}"
|
||||
label2: label2
|
||||
annotations:
|
||||
annotation1: "{{ .Values.annotation1 }}"
|
||||
annotation2: annotation2
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -67,13 +68,14 @@ tests:
|
||||
|
||||
- it: should pass with middlewares created with namespace
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: some-namespace
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: some-namespace
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -83,13 +85,14 @@ tests:
|
||||
- it: should pass with middlewares created with object namespace from tpl
|
||||
set:
|
||||
key: some-namespace
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: "{{ .Values.key }}"
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: "{{ .Values.key }}"
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -101,12 +104,13 @@ tests:
|
||||
key: global-namespace
|
||||
global:
|
||||
namespace: "{{ .Values.key }}"
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -119,12 +123,13 @@ tests:
|
||||
namespace: "{{ .Values.key }}"
|
||||
global:
|
||||
namespace: global-namespace
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
|
||||
@@ -7,12 +7,13 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
prefix: some-prefix
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
prefix: some-prefix
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -26,12 +27,13 @@ tests:
|
||||
|
||||
- it: should fail with missing prefix
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: add-prefix
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (add-prefix) - Expected [prefix] to be set
|
||||
|
||||
@@ -7,21 +7,22 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
- username: some-other-username
|
||||
password: some-other-password
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
- username: some-other-username
|
||||
password: some-other-password
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -55,27 +56,29 @@ tests:
|
||||
|
||||
- it: should fail with missing both users and secret
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set
|
||||
|
||||
- it: should fail with both secret and users set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: basic-auth
|
||||
data:
|
||||
secret: some-secret
|
||||
users:
|
||||
- username: some-username
|
||||
password: some-password
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both
|
||||
|
||||
@@ -7,16 +7,17 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
memRequestBodyBytes: 1024
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: some-expression
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
memRequestBodyBytes: 1024
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: some-expression
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -34,12 +35,13 @@ tests:
|
||||
|
||||
- it: should pass with only maxRequestBodyBytes set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 1024
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -50,16 +52,17 @@ tests:
|
||||
|
||||
- it: should render 0 and non-null values
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 0
|
||||
memRequestBodyBytes: null
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: ""
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
maxRequestBodyBytes: 0
|
||||
memRequestBodyBytes: null
|
||||
maxResponseBodyBytes: 1024
|
||||
memResponseBodyBytes: 1024
|
||||
retryExpression: ""
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
|
||||
@@ -7,15 +7,16 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares:
|
||||
- name: some-name
|
||||
expandObjectName: false
|
||||
- name: some-other-name
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares:
|
||||
- name: some-name
|
||||
expandObjectName: false
|
||||
- name: some-other-name
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -31,12 +32,13 @@ tests:
|
||||
|
||||
- it: should fail with missing middlewares
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares: []
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: chain
|
||||
data:
|
||||
middlewares: []
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (chain) - Expected [middlewares] to be set
|
||||
|
||||
@@ -7,10 +7,11 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: compress
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: compress
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,10 +7,11 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: content-type
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: content-type
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,20 +7,21 @@ release:
|
||||
tests:
|
||||
- it: should pass with values
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeadersRegex: some-regex
|
||||
trustForwardHeader: true
|
||||
authResponseHeaders:
|
||||
- some-header
|
||||
authRequestHeaders:
|
||||
- some-header
|
||||
tls:
|
||||
insecureSkipVerify: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeadersRegex: some-regex
|
||||
trustForwardHeader: true
|
||||
authResponseHeaders:
|
||||
- some-header
|
||||
authRequestHeaders:
|
||||
- some-header
|
||||
tls:
|
||||
insecureSkipVerify: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -42,65 +43,70 @@ tests:
|
||||
|
||||
- it: should fail with missing address
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
authResponseHeadersRegex: some-regex
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
authResponseHeadersRegex: some-regex
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [address] to be set
|
||||
|
||||
- it: should fail with invalid authResponseHeaders
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeaders: some-header
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authResponseHeaders: some-header
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [authResponseHeaders] to be a list, but got [string]
|
||||
|
||||
- it: should fail with invalid authRequestHeaders
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authRequestHeaders: some-header
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
authRequestHeaders: some-header
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [authRequestHeaders] to be a list, but got [string]
|
||||
|
||||
- it: should fail with invalid tls.insecureSkipVerify
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
tls:
|
||||
insecureSkipVerify: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
tls:
|
||||
insecureSkipVerify: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [tls.insecureSkipVerify] to be a boolean, but got [string]
|
||||
|
||||
- it: should fail with invalid trustForwardHeader
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
trustForwardHeader: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: forward-auth
|
||||
data:
|
||||
address: some-address
|
||||
trustForwardHeader: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (forward-auth) - Expected [trustForwardHeader] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,59 +7,60 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: headers
|
||||
data:
|
||||
customRequestHeaders:
|
||||
some-name: some-value
|
||||
some-other-name: some-other-value
|
||||
customResponseHeaders:
|
||||
some-name: some-value
|
||||
some-other-name: some-other-value
|
||||
accessControlAllowCredentials: true
|
||||
accessControlAllowHeaders:
|
||||
- some-header
|
||||
- some-other-header
|
||||
accessControlAllowMethods:
|
||||
- GET
|
||||
- DELETE
|
||||
accessControlAllowOriginList:
|
||||
- some-origin
|
||||
- some-other-origin
|
||||
accessControlAllowOriginListRegex:
|
||||
- some-origin-regex
|
||||
- some-other-origin-regex
|
||||
accessControlExposeHeaders:
|
||||
- some-header
|
||||
- some-other-header
|
||||
accessControlMaxAge: 1000
|
||||
addVaryHeader: true
|
||||
allowedHosts:
|
||||
- some-host
|
||||
- some-other-host
|
||||
hostsProxyHeaders:
|
||||
- some-header
|
||||
- some-other-header
|
||||
sslProxyHeaders:
|
||||
some-header: some-value
|
||||
some-other-header: some-other-value
|
||||
stsSeconds: 1000
|
||||
stsIncludeSubdomains: true
|
||||
stsPreload: true
|
||||
forceSTSHeader: true
|
||||
frameDeny: true
|
||||
customFrameOptionsValue: some-value
|
||||
contentTypeNosniff: true
|
||||
browserXssFilter: true
|
||||
customBrowserXSSValue: some-value
|
||||
contentSecurityPolicy: some-value
|
||||
contentSecurityPolicyReportOnly: true
|
||||
publicKey: some-public-key
|
||||
referrerPolicy: some-referrer-policy
|
||||
permissionsPolicy: some-permissions-policy
|
||||
isDevelopment: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: headers
|
||||
data:
|
||||
customRequestHeaders:
|
||||
some-name: some-value
|
||||
some-other-name: some-other-value
|
||||
customResponseHeaders:
|
||||
some-name: some-value
|
||||
some-other-name: some-other-value
|
||||
accessControlAllowCredentials: true
|
||||
accessControlAllowHeaders:
|
||||
- some-header
|
||||
- some-other-header
|
||||
accessControlAllowMethods:
|
||||
- GET
|
||||
- DELETE
|
||||
accessControlAllowOriginList:
|
||||
- some-origin
|
||||
- some-other-origin
|
||||
accessControlAllowOriginListRegex:
|
||||
- some-origin-regex
|
||||
- some-other-origin-regex
|
||||
accessControlExposeHeaders:
|
||||
- some-header
|
||||
- some-other-header
|
||||
accessControlMaxAge: 1000
|
||||
addVaryHeader: true
|
||||
allowedHosts:
|
||||
- some-host
|
||||
- some-other-host
|
||||
hostsProxyHeaders:
|
||||
- some-header
|
||||
- some-other-header
|
||||
sslProxyHeaders:
|
||||
some-header: some-value
|
||||
some-other-header: some-other-value
|
||||
stsSeconds: 1000
|
||||
stsIncludeSubdomains: true
|
||||
stsPreload: true
|
||||
forceSTSHeader: true
|
||||
frameDeny: true
|
||||
customFrameOptionsValue: some-value
|
||||
contentTypeNosniff: true
|
||||
browserXssFilter: true
|
||||
customBrowserXSSValue: some-value
|
||||
contentSecurityPolicy: some-value
|
||||
contentSecurityPolicyReportOnly: true
|
||||
publicKey: some-public-key
|
||||
referrerPolicy: some-referrer-policy
|
||||
permissionsPolicy: some-permissions-policy
|
||||
isDevelopment: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,17 +7,18 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
depth: 1
|
||||
excludedIPs:
|
||||
- some-excluded-ip
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
depth: 1
|
||||
excludedIPs:
|
||||
- some-excluded-ip
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -36,27 +37,29 @@ tests:
|
||||
|
||||
- it: should fail with invalid sourceRange
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange: some-source-range
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange: some-source-range
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (ip-allow-list) - Expected [sourceRange] to be a list, but got [string]
|
||||
|
||||
- it: should fail with invalid ipStrategy.excludedIPs
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
excludedIPs: some-excluded-ip
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: ip-allow-list
|
||||
data:
|
||||
sourceRange:
|
||||
- some-source-range
|
||||
ipStrategy:
|
||||
excludedIPs: some-excluded-ip
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (ip-allow-list) - Expected [ipStrategy.excludedIPs] to be a list, but got [string]
|
||||
|
||||
@@ -7,68 +7,69 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
logLevel: DEBUG
|
||||
updateIntervalSeconds: 60
|
||||
updateMaxFailure: 0
|
||||
defaultDecisionSeconds: 60
|
||||
httpTimeoutSeconds: 10
|
||||
crowdsecMode: live
|
||||
crowdsecAppsecEnabled: false
|
||||
crowdsecAppsecHost: crowdsec:7422
|
||||
crowdsecAppsecFailureBlock: true
|
||||
crowdsecAppsecUnreachableBlock: true
|
||||
crowdsecLapiKey: privateKey-foo
|
||||
crowdsecLapiHost: crowdsec:8080
|
||||
crowdsecLapiScheme: http
|
||||
crowdsecLapiTLSInsecureVerify: false
|
||||
crowdsecCapiMachineId: login
|
||||
crowdsecCapiPassword: password
|
||||
crowdsecCapiScenarios:
|
||||
- crowdsecurity/http-path-traversal-probing
|
||||
- crowdsecurity/http-xss-probing
|
||||
- crowdsecurity/http-generic-bf
|
||||
forwardedHeadersTrustedIPs:
|
||||
- 10.0.10.23/32
|
||||
- 10.0.20.0/24
|
||||
clientTrustedIPs:
|
||||
- 192.168.1.0/24
|
||||
forwardedHeadersCustomName: X-Custom-Header
|
||||
remediationHeadersCustomName: cs-remediation
|
||||
redisCacheEnabled: false
|
||||
redisCacheHost: "redis:6379"
|
||||
redisCachePassword: password
|
||||
redisCacheDatabase: "5"
|
||||
crowdsecLapiTLSCertificateAuthority: |-
|
||||
-----BEGIN TOTALY NOT A CERT-----
|
||||
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
||||
...
|
||||
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
||||
-----END TOTALY NOT A CERT-----
|
||||
crowdsecLapiTLSCertificateBouncer: |-
|
||||
-----BEGIN TOTALY NOT A CERT-----
|
||||
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
||||
...
|
||||
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
||||
N2U=
|
||||
-----END TOTALY NOT A CERT-----
|
||||
crowdsecLapiTLSCertificateBouncerKey: |-
|
||||
-----BEGIN TOTALY NOT A SECRET-----
|
||||
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
||||
...
|
||||
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
||||
-----END TOTALY NOT A SECRET-----
|
||||
captchaProvider: hcaptcha
|
||||
captchaSiteKey: FIXME
|
||||
captchaSecretKey: FIXME
|
||||
captchaGracePeriodSeconds: 1800
|
||||
captchaHTMLFilePath: /captcha.html
|
||||
banHTMLFilePath: /ban.html
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
enabled: true
|
||||
logLevel: DEBUG
|
||||
updateIntervalSeconds: 60
|
||||
updateMaxFailure: 0
|
||||
defaultDecisionSeconds: 60
|
||||
httpTimeoutSeconds: 10
|
||||
crowdsecMode: live
|
||||
crowdsecAppsecEnabled: false
|
||||
crowdsecAppsecHost: crowdsec:7422
|
||||
crowdsecAppsecFailureBlock: true
|
||||
crowdsecAppsecUnreachableBlock: true
|
||||
crowdsecLapiKey: privateKey-foo
|
||||
crowdsecLapiHost: crowdsec:8080
|
||||
crowdsecLapiScheme: http
|
||||
crowdsecLapiTLSInsecureVerify: false
|
||||
crowdsecCapiMachineId: login
|
||||
crowdsecCapiPassword: password
|
||||
crowdsecCapiScenarios:
|
||||
- crowdsecurity/http-path-traversal-probing
|
||||
- crowdsecurity/http-xss-probing
|
||||
- crowdsecurity/http-generic-bf
|
||||
forwardedHeadersTrustedIPs:
|
||||
- 10.0.10.23/32
|
||||
- 10.0.20.0/24
|
||||
clientTrustedIPs:
|
||||
- 192.168.1.0/24
|
||||
forwardedHeadersCustomName: X-Custom-Header
|
||||
remediationHeadersCustomName: cs-remediation
|
||||
redisCacheEnabled: false
|
||||
redisCacheHost: "redis:6379"
|
||||
redisCachePassword: password
|
||||
redisCacheDatabase: "5"
|
||||
crowdsecLapiTLSCertificateAuthority: |-
|
||||
-----BEGIN TOTALY NOT A CERT-----
|
||||
MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
|
||||
...
|
||||
Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT
|
||||
-----END TOTALY NOT A CERT-----
|
||||
crowdsecLapiTLSCertificateBouncer: |-
|
||||
-----BEGIN TOTALY NOT A CERT-----
|
||||
MIIEHjCCAwagAwIBAgIUOBTs1eqkaAUcPplztUr2xRapvNAwDQYJKoZIhvcNAQEL
|
||||
...
|
||||
RaXAnYYUVRblS1jmePemh388hFxbmrpG2pITx8B5FMULqHoj11o2Rl0gSV6tHIHz
|
||||
N2U=
|
||||
-----END TOTALY NOT A CERT-----
|
||||
crowdsecLapiTLSCertificateBouncerKey: |-
|
||||
-----BEGIN TOTALY NOT A SECRET-----
|
||||
MIIEogIBAAKCAQEAtYQnbJqifH+ZymePylDxGGLIuxzcAUU4/ajNj+qRAdI/Ux3d
|
||||
...
|
||||
ic5cDRo6/VD3CS3MYzyBcibaGaV34nr0G/pI+KEqkYChzk/PZRA=
|
||||
-----END TOTALY NOT A SECRET-----
|
||||
captchaProvider: hcaptcha
|
||||
captchaSiteKey: FIXME
|
||||
captchaSecretKey: FIXME
|
||||
captchaGracePeriodSeconds: 1800
|
||||
captchaHTMLFilePath: /captcha.html
|
||||
banHTMLFilePath: /ban.html
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -136,13 +137,14 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
pluginName: traefik-bouncer-test
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
pluginName: traefik-bouncer-test
|
||||
enabled: true
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -154,24 +156,26 @@ tests:
|
||||
|
||||
- it: should fail with missing enabled
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be set
|
||||
|
||||
- it: should fail with invalid enabled
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
enabled: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-bouncer
|
||||
data:
|
||||
enabled: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-bouncer) - Expected [enabled] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,27 +7,28 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
allowLocalRequests: true
|
||||
logLocalRequests: true
|
||||
logAllowedRequests: true
|
||||
logApiRequests: true
|
||||
apiTimeoutMs: 1000
|
||||
cacheSize: 1000
|
||||
forceMonthlyUpdate: true
|
||||
allowUnknownCountries: true
|
||||
unknownCountryApiResponse: some-value
|
||||
blackListMode: true
|
||||
silentStartUp: true
|
||||
addCountryHeader: true
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
allowLocalRequests: true
|
||||
logLocalRequests: true
|
||||
logAllowedRequests: true
|
||||
logApiRequests: true
|
||||
apiTimeoutMs: 1000
|
||||
cacheSize: 1000
|
||||
forceMonthlyUpdate: true
|
||||
allowUnknownCountries: true
|
||||
unknownCountryApiResponse: some-value
|
||||
blackListMode: true
|
||||
silentStartUp: true
|
||||
addCountryHeader: true
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -54,16 +55,17 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
pluginName: traefik-geoblock-test
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
pluginName: traefik-geoblock-test
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
countries:
|
||||
- some-country
|
||||
- some-other-country
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -78,24 +80,26 @@ tests:
|
||||
|
||||
- it: should fail with missing api
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-geoblock) - Expected [api] to be set
|
||||
|
||||
- it: should fail with missing countries
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-geoblock
|
||||
data:
|
||||
api: https://api.geoblock.org/v2/geoblock
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (plugin-geoblock) - Expected [countries] to be set
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
modSecurityUrl: some-url
|
||||
timeoutMillis: 1000
|
||||
maxBodySize: 1024
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
modSecurityUrl: some-url
|
||||
timeoutMillis: 1000
|
||||
maxBodySize: 1024
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -28,13 +29,14 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
pluginName: traefik-mod-security-test
|
||||
modSecurityUrl: some-url
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
pluginName: traefik-mod-security-test
|
||||
modSecurityUrl: some-url
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -46,12 +48,13 @@ tests:
|
||||
|
||||
- it: should fail with missing modSecurityUrl
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-mod-security
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (modsecurity) - Expected [modSecurityUrl] to be set
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -28,15 +29,16 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
pluginName: traefik-real-ip-test
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
pluginName: traefik-real-ip-test
|
||||
excludednets:
|
||||
- some-excluded-net
|
||||
- some-other-excluded-net
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -50,12 +52,13 @@ tests:
|
||||
|
||||
- it: should fail with missing excludednets
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-real-ip
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (real-ip) - Expected [excludednets] to be set
|
||||
|
||||
+65
-58
@@ -7,18 +7,19 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
- header: some-other-header
|
||||
regex: some-other-regex
|
||||
replacement: some-other-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
- header: some-other-header
|
||||
regex: some-other-regex
|
||||
replacement: some-other-replacement
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -36,16 +37,17 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
pluginName: traefik-rewrite-response-headers-test
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
pluginName: traefik-rewrite-response-headers-test
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -60,66 +62,71 @@ tests:
|
||||
|
||||
- it: should fail with missing header
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- regex: some-regex
|
||||
replacement: some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- regex: some-regex
|
||||
replacement: some-replacement
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [header] to be set for rewrite [0]
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
replacement: some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
replacement: some-replacement
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [regex] to be set for rewrite [0]
|
||||
|
||||
- it: should fail with missing replacement
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites:
|
||||
- header: some-header
|
||||
regex: some-regex
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [replacement] to be set for rewrite [0]
|
||||
|
||||
- it: should fail with missing rewrites
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be set
|
||||
|
||||
- it: should fail with invalid rewrites
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-rewrite-response-headers
|
||||
data:
|
||||
rewrites: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rewrite-response-headers) - Expected [rewrites] to be a list, but got [string]
|
||||
|
||||
@@ -7,17 +7,18 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
baseUrl: https://example.com
|
||||
addons:
|
||||
- some-addon
|
||||
- some-other-addon
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
baseUrl: https://example.com
|
||||
addons:
|
||||
- some-addon
|
||||
- some-other-addon
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -34,14 +35,15 @@ tests:
|
||||
|
||||
- it: should pass with pluginName set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
pluginName: traefik-themepark-test
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
theme: dark
|
||||
pluginName: traefik-themepark-test
|
||||
asserts:
|
||||
- documentIndex: *middlewareDoc
|
||||
equal:
|
||||
@@ -54,24 +56,26 @@ tests:
|
||||
|
||||
- it: should fail with missing app
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
theme: dark
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
theme: dark
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (themepark) - Expected [app] to be set
|
||||
|
||||
- it: should fail with missing theme
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: plugin-theme-park
|
||||
data:
|
||||
app: sonarr
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (themepark) - Expected [theme] to be set
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
average: 1000
|
||||
burst: 2000
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
average: 1000
|
||||
burst: 2000
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
equal:
|
||||
@@ -24,12 +25,13 @@ tests:
|
||||
burst: 2000
|
||||
- it: should fail with missing average and burst
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: rate-limit
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (rate-limit) - Expected either [average] or [burst] to be set
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -30,40 +31,43 @@ tests:
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
replacement: some-replacement
|
||||
permanent: true
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-regex) - Expected [regex] to be set
|
||||
|
||||
- it: should fail with missing replacement
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
permanent: true
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-regex) - Expected [replacement] to be set
|
||||
|
||||
- it: should fail with invalid permanent
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-regex
|
||||
data:
|
||||
regex: some-regex
|
||||
replacement: some-replacement
|
||||
permanent: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-regex) - Expected [permanent] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: true
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -28,25 +29,27 @@ tests:
|
||||
|
||||
- it: should fail with missing scheme
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
permanent: true
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
permanent: true
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-scheme) - Expected [scheme] to be set
|
||||
|
||||
- it: should fail with invalid permanent
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: redirect-scheme
|
||||
data:
|
||||
scheme: https
|
||||
permanent: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (redirect-scheme) - Expected [permanent] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
replacement: /some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
replacement: /some-replacement
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -28,24 +29,26 @@ tests:
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
replacement: /some-replacement
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
replacement: /some-replacement
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (replace-path-regex) - Expected [regex] to be set
|
||||
|
||||
- it: should fail with missing replacement
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path-regex
|
||||
data:
|
||||
regex: /some-path
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (replace-path-regex) - Expected [replacement] to be set
|
||||
|
||||
@@ -7,12 +7,13 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
path: /some-path
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
path: /some-path
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -26,12 +27,13 @@ tests:
|
||||
|
||||
- it: should fail with missing path
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: replace-path
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (replace-path) - Expected [path] to be set
|
||||
|
||||
@@ -7,13 +7,14 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
attempts: 3
|
||||
initialInterval: 1000
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
attempts: 3
|
||||
initialInterval: 1000
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -28,12 +29,13 @@ tests:
|
||||
|
||||
- it: should fail with missing attempts
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: retry
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (retry) - Expected [attempts] to be set
|
||||
|
||||
@@ -7,15 +7,16 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
forceSlash: true
|
||||
prefix:
|
||||
- /some-prefix
|
||||
- /some-other-prefix
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
forceSlash: true
|
||||
prefix:
|
||||
- /some-prefix
|
||||
- /some-other-prefix
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -32,26 +33,28 @@ tests:
|
||||
|
||||
- it: should fail with missing prefix
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix: []
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix: []
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (strip-prefix) - Expected [prefix] to be set
|
||||
|
||||
- it: should fail with invalid forceSlash
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix:
|
||||
- /some-prefix
|
||||
forceSlash: some-value
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix
|
||||
data:
|
||||
prefix:
|
||||
- /some-prefix
|
||||
forceSlash: some-value
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (strip-prefix) - Expected [forceSlash] to be a boolean, but got [string]
|
||||
|
||||
@@ -7,14 +7,15 @@ release:
|
||||
tests:
|
||||
- it: should pass with all set
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex:
|
||||
- some-regex
|
||||
- some-other-regex
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex:
|
||||
- some-regex
|
||||
- some-other-regex
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
@@ -30,12 +31,13 @@ tests:
|
||||
|
||||
- it: should fail with missing regex
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex: []
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: strip-prefix-regex
|
||||
data:
|
||||
regex: []
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware (strip-prefix-regex) - Expected [regex] to be set
|
||||
|
||||
@@ -7,23 +7,24 @@ release:
|
||||
tests:
|
||||
- it: should generate correct name
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware3:
|
||||
enabled: true
|
||||
type: buffering
|
||||
expandObjectName: false
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware1:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware2:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
my-middleware3:
|
||||
enabled: true
|
||||
type: buffering
|
||||
expandObjectName: false
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- documentIndex: &middlewareDoc 0
|
||||
isKind:
|
||||
|
||||
@@ -7,97 +7,105 @@ release:
|
||||
tests:
|
||||
- it: should fail with name longer than 253 characters
|
||||
set:
|
||||
middlewares:
|
||||
? my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name
|
||||
: enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Name [test-release-name-common-test-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-name-that-is-longer-than-253-characters-my-middleware-super-long-long-long-long-long-long-long-long-name] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
|
||||
|
||||
- it: should fail with name starting with underscore
|
||||
set:
|
||||
middlewares:
|
||||
_my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
_my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Name [test-release-name-common-test-_my-middleware] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 253 characters.
|
||||
|
||||
- it: should fail with namespace longer than 63 characters
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters.
|
||||
|
||||
- it: should fail with labels not a dict
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
labels: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [labels] to be a dictionary, but got [string]
|
||||
|
||||
- it: should fail with annotations not a dict
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
annotations: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
annotations: "not a dict"
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [annotations] to be a dictionary, but got [string]
|
||||
|
||||
- it: should fail with data not a dict
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data: "not a dict"
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type: buffering
|
||||
data: "not a dict"
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [data] to be a dictionary, but got [string]
|
||||
|
||||
- it: should fail with empty enabled
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled:
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled:
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected the defined key [enabled] in [middlewares.my-middleware] to not be empty
|
||||
|
||||
- it: should fail with empty type
|
||||
set:
|
||||
middlewares:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type:
|
||||
data:
|
||||
foo: bar
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
my-middleware:
|
||||
enabled: true
|
||||
type:
|
||||
data:
|
||||
foo: bar
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: Middleware - Expected [type] to be set
|
||||
|
||||
@@ -48,4 +48,4 @@ sources:
|
||||
- https://hub.docker.com/_/
|
||||
- https://hub.docker.com/r/mikefarah/yq
|
||||
type: library
|
||||
version: 25.4.15
|
||||
version: 25.5.0
|
||||
|
||||
@@ -5,8 +5,14 @@
|
||||
|
||||
{{- define "tc.v1.common.spawner.traefik.middleware" -}}
|
||||
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}}
|
||||
{{- if not .Values.ingressMiddlewares -}}
|
||||
{{- $_ := set $.Values "ingressMiddlewares" dict -}}
|
||||
{{- end -}}
|
||||
{{- if not .Values.ingressMiddlewares.traefik -}}
|
||||
{{- $_ := set $.Values.ingressMiddlewares "traefik" dict -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $name, $middleware := .Values.middlewares -}}
|
||||
{{- range $name, $middleware := $.Values.ingressMiddlewares.traefik -}}
|
||||
|
||||
{{- $enabled := (include "tc.v1.common.lib.util.enabled" (dict
|
||||
"rootCtx" $ "objectData" $middleware
|
||||
|
||||
@@ -235,19 +235,39 @@ credentials:
|
||||
# ## Is used in cases where things are encrypted by a backup utility
|
||||
# encrKey: ""
|
||||
|
||||
middlewares: {}
|
||||
# basic-auth:
|
||||
# type: basicAuth
|
||||
# data:
|
||||
# # middleware specific data ie
|
||||
# users:
|
||||
# - username: user1
|
||||
# password: password1
|
||||
# some-other-middleware:
|
||||
# type: someOtherMiddleware
|
||||
# data:
|
||||
# # middleware specific data ie
|
||||
# someOtherMiddlewareData: someOtherMiddlewareData
|
||||
ingressMiddlewares:
|
||||
traefik:
|
||||
tc-basic-secure-headers:
|
||||
enabled: false
|
||||
type: headers
|
||||
data:
|
||||
accessControlAllowMethods:
|
||||
- GET
|
||||
- OPTIONS
|
||||
- HEAD
|
||||
- PUT
|
||||
accessControlMaxAge: 100
|
||||
stsSeconds: 63072000
|
||||
forceSTSHeader: true
|
||||
contentTypeNosniff: true
|
||||
browserXssFilter: true
|
||||
referrerPolicy: same-origin
|
||||
customRequestHeaders:
|
||||
X-Forwarded-Proto: "https"
|
||||
# basic-auth:
|
||||
# enabled: true
|
||||
# type: basicAuth
|
||||
# data:
|
||||
# # middleware specific data ie
|
||||
# users:
|
||||
# - username: user1
|
||||
# password: password1
|
||||
# some-other-middleware:
|
||||
# enabled: true
|
||||
# type: someOtherMiddleware
|
||||
# data:
|
||||
# # middleware specific data ie
|
||||
# someOtherMiddlewareData: someOtherMiddlewareData
|
||||
|
||||
# -- (docs/persistence/README.md)
|
||||
persistence:
|
||||
|
||||
Reference in New Issue
Block a user