From a27d735b9dd078775e4588930fe3149b2ae0834f Mon Sep 17 00:00:00 2001 From: Kjeld Schouten Date: Sat, 1 Feb 2025 21:49:53 +0100 Subject: [PATCH] feat(common): restructure traefik/ingress middlewares (#31171) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **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?** **๐Ÿ“ƒ Notes:** **โœ”๏ธ 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 Co-authored-by: Stavros Kois Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> --- charts/library/common-test/Chart.yaml | 2 +- .../tests/traefik/metadata_test.yaml | 81 +- .../traefik/middleware_addPrefix_test.yaml | 26 +- .../traefik/middleware_basicAuth_test.yaml | 63 +- .../traefik/middleware_buffering_test.yaml | 55 +- .../tests/traefik/middleware_chain_test.yaml | 32 +- .../traefik/middleware_compress_test.yaml | 9 +- .../traefik/middleware_contentType_test.yaml | 9 +- .../traefik/middleware_forwardAuth_test.yaml | 104 +- .../traefik/middleware_headers_test.yaml | 107 +- .../traefik/middleware_ipAllowList_test.yaml | 55 +- .../middleware_pluginBouncer_test.yaml | 162 +-- .../middleware_pluginGeoblock_test.yaml | 90 +- .../middleware_pluginModSecurity_test.yaml | 45 +- .../traefik/middleware_pluginRealIP_test.yaml | 49 +- ...are_pluginRewriteResponseHeaders_test.yaml | 123 +-- .../middleware_pluginThemePark_test.yaml | 66 +- .../traefik/middleware_rateLimit_test.yaml | 28 +- .../middleware_redirectRegex_test.yaml | 64 +- .../middleware_redirectScheme_test.yaml | 43 +- .../middleware_replacePathRegex_test.yaml | 41 +- .../traefik/middleware_replacePath_test.yaml | 26 +- .../tests/traefik/middleware_retry_test.yaml | 28 +- .../tests/traefik/middleware_stripPrefix.yaml | 49 +- .../middleware_stripPrefixRegex_test.yaml | 30 +- .../common-test/tests/traefik/name_test.yaml | 35 +- .../tests/traefik/validation_test.yaml | 106 +- charts/library/common/Chart.yaml | 2 +- .../templates/spawner/traefik/_middleware.tpl | 8 +- charts/library/common/values.yaml | 46 +- .../docs/common/middlewares/add-prefix.md | 58 -- .../docs/common/middlewares/basic-auth.md | 152 --- .../docs/common/middlewares/buffering.md | 146 --- .../content/docs/common/middlewares/chain.md | 105 -- .../docs/common/middlewares/forward-auth.md | 207 ---- .../docs/common/middlewares/headers.md | 748 -------------- .../content/docs/common/middlewares/index.md | 333 +++--- .../docs/common/middlewares/ip-allow-list.md | 136 --- .../docs/common/middlewares/plugin-bouncer.md | 958 ----------------- .../common/middlewares/plugin-geoblock.md | 397 ------- .../common/middlewares/plugin-mod-security.md | 130 --- .../docs/common/middlewares/plugin-real-ip.md | 86 -- .../plugin-rewrite-response-headers.md | 163 --- .../common/middlewares/plugin-theme-park.md | 158 --- .../docs/common/middlewares/rate-limit.md | 82 -- .../docs/common/middlewares/redirect-regex.md | 106 -- .../common/middlewares/redirect-scheme.md | 82 -- .../common/middlewares/replace-path-regex.md | 82 -- .../docs/common/middlewares/replace-path.md | 58 -- .../content/docs/common/middlewares/retry.md | 82 -- .../common/middlewares/strip-prefix-regex.md | 62 -- .../docs/common/middlewares/strip-prefix.md | 86 -- .../common/middlewares/traefik/add-prefix.md | 60 ++ .../common/middlewares/traefik/basic-auth.md | 157 +++ .../common/middlewares/traefik/buffering.md | 152 +++ .../docs/common/middlewares/traefik/chain.md | 114 ++ .../middlewares/{ => traefik}/compress.md | 13 +- .../middlewares/{ => traefik}/content-type.md | 13 +- .../middlewares/traefik/forward-auth.md | 215 ++++ .../common/middlewares/traefik/headers.md | 777 ++++++++++++++ .../docs/common/middlewares/traefik/index.md | 83 ++ .../middlewares/traefik/ip-allow-list.md | 141 +++ .../middlewares/traefik/plugin-bouncer.md | 972 ++++++++++++++++++ .../middlewares/traefik/plugin-geoblock.md | 413 ++++++++ .../traefik/plugin-mod-security.md | 135 +++ .../middlewares/traefik/plugin-real-ip.md | 89 ++ .../plugin-rewrite-response-headers.md | 169 +++ .../middlewares/traefik/plugin-theme-park.md | 164 +++ .../common/middlewares/traefik/rate-limit.md | 85 ++ .../middlewares/traefik/redirect-regex.md | 110 ++ .../middlewares/traefik/redirect-scheme.md | 85 ++ .../middlewares/traefik/replace-path-regex.md | 85 ++ .../middlewares/traefik/replace-path.md | 60 ++ .../docs/common/middlewares/traefik/retry.md | 85 ++ .../middlewares/traefik/strip-prefix-regex.md | 64 ++ .../middlewares/traefik/strip-prefix.md | 89 ++ 76 files changed, 5339 insertions(+), 4992 deletions(-) delete mode 100644 website/src/content/docs/common/middlewares/add-prefix.md delete mode 100644 website/src/content/docs/common/middlewares/basic-auth.md delete mode 100644 website/src/content/docs/common/middlewares/buffering.md delete mode 100644 website/src/content/docs/common/middlewares/chain.md delete mode 100644 website/src/content/docs/common/middlewares/forward-auth.md delete mode 100644 website/src/content/docs/common/middlewares/headers.md delete mode 100644 website/src/content/docs/common/middlewares/ip-allow-list.md delete mode 100644 website/src/content/docs/common/middlewares/plugin-bouncer.md delete mode 100644 website/src/content/docs/common/middlewares/plugin-geoblock.md delete mode 100644 website/src/content/docs/common/middlewares/plugin-mod-security.md delete mode 100644 website/src/content/docs/common/middlewares/plugin-real-ip.md delete mode 100644 website/src/content/docs/common/middlewares/plugin-rewrite-response-headers.md delete mode 100644 website/src/content/docs/common/middlewares/plugin-theme-park.md delete mode 100644 website/src/content/docs/common/middlewares/rate-limit.md delete mode 100644 website/src/content/docs/common/middlewares/redirect-regex.md delete mode 100644 website/src/content/docs/common/middlewares/redirect-scheme.md delete mode 100644 website/src/content/docs/common/middlewares/replace-path-regex.md delete mode 100644 website/src/content/docs/common/middlewares/replace-path.md delete mode 100644 website/src/content/docs/common/middlewares/retry.md delete mode 100644 website/src/content/docs/common/middlewares/strip-prefix-regex.md delete mode 100644 website/src/content/docs/common/middlewares/strip-prefix.md create mode 100644 website/src/content/docs/common/middlewares/traefik/add-prefix.md create mode 100644 website/src/content/docs/common/middlewares/traefik/basic-auth.md create mode 100644 website/src/content/docs/common/middlewares/traefik/buffering.md create mode 100644 website/src/content/docs/common/middlewares/traefik/chain.md rename website/src/content/docs/common/middlewares/{ => traefik}/compress.md (62%) rename website/src/content/docs/common/middlewares/{ => traefik}/content-type.md (62%) create mode 100644 website/src/content/docs/common/middlewares/traefik/forward-auth.md create mode 100644 website/src/content/docs/common/middlewares/traefik/headers.md create mode 100644 website/src/content/docs/common/middlewares/traefik/index.md create mode 100644 website/src/content/docs/common/middlewares/traefik/ip-allow-list.md create mode 100644 website/src/content/docs/common/middlewares/traefik/plugin-bouncer.md create mode 100644 website/src/content/docs/common/middlewares/traefik/plugin-geoblock.md create mode 100644 website/src/content/docs/common/middlewares/traefik/plugin-mod-security.md create mode 100644 website/src/content/docs/common/middlewares/traefik/plugin-real-ip.md create mode 100644 website/src/content/docs/common/middlewares/traefik/plugin-rewrite-response-headers.md create mode 100644 website/src/content/docs/common/middlewares/traefik/plugin-theme-park.md create mode 100644 website/src/content/docs/common/middlewares/traefik/rate-limit.md create mode 100644 website/src/content/docs/common/middlewares/traefik/redirect-regex.md create mode 100644 website/src/content/docs/common/middlewares/traefik/redirect-scheme.md create mode 100644 website/src/content/docs/common/middlewares/traefik/replace-path-regex.md create mode 100644 website/src/content/docs/common/middlewares/traefik/replace-path.md create mode 100644 website/src/content/docs/common/middlewares/traefik/retry.md create mode 100644 website/src/content/docs/common/middlewares/traefik/strip-prefix-regex.md create mode 100644 website/src/content/docs/common/middlewares/traefik/strip-prefix.md diff --git a/charts/library/common-test/Chart.yaml b/charts/library/common-test/Chart.yaml index 486d4c2d922..b3aba11e104 100644 --- a/charts/library/common-test/Chart.yaml +++ b/charts/library/common-test/Chart.yaml @@ -7,7 +7,7 @@ apiVersion: v2 appVersion: unknown dependencies: - name: common - version: ~25.4.0 + version: ~25.5.0 repository: file://../common/ condition: "" alias: "" diff --git a/charts/library/common-test/tests/traefik/metadata_test.yaml b/charts/library/common-test/tests/traefik/metadata_test.yaml index b8cd46958f5..88a6bce9dca 100644 --- a/charts/library/common-test/tests/traefik/metadata_test.yaml +++ b/charts/library/common-test/tests/traefik/metadata_test.yaml @@ -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: diff --git a/charts/library/common-test/tests/traefik/middleware_addPrefix_test.yaml b/charts/library/common-test/tests/traefik/middleware_addPrefix_test.yaml index f414ef4da51..3c8d6486691 100644 --- a/charts/library/common-test/tests/traefik/middleware_addPrefix_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_addPrefix_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_basicAuth_test.yaml b/charts/library/common-test/tests/traefik/middleware_basicAuth_test.yaml index 825eae38f05..0fad3a1ad29 100644 --- a/charts/library/common-test/tests/traefik/middleware_basicAuth_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_basicAuth_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_buffering_test.yaml b/charts/library/common-test/tests/traefik/middleware_buffering_test.yaml index a561eb65942..23cdde2d3bb 100644 --- a/charts/library/common-test/tests/traefik/middleware_buffering_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_buffering_test.yaml @@ -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: diff --git a/charts/library/common-test/tests/traefik/middleware_chain_test.yaml b/charts/library/common-test/tests/traefik/middleware_chain_test.yaml index 36d7dbce6ad..264b28112b5 100644 --- a/charts/library/common-test/tests/traefik/middleware_chain_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_chain_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_compress_test.yaml b/charts/library/common-test/tests/traefik/middleware_compress_test.yaml index 82c18e5dca9..ed429e768c5 100644 --- a/charts/library/common-test/tests/traefik/middleware_compress_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_compress_test.yaml @@ -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: diff --git a/charts/library/common-test/tests/traefik/middleware_contentType_test.yaml b/charts/library/common-test/tests/traefik/middleware_contentType_test.yaml index 54ac83d7ce2..b86bd305a18 100644 --- a/charts/library/common-test/tests/traefik/middleware_contentType_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_contentType_test.yaml @@ -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: diff --git a/charts/library/common-test/tests/traefik/middleware_forwardAuth_test.yaml b/charts/library/common-test/tests/traefik/middleware_forwardAuth_test.yaml index 7ead0b55add..d690ce0e4cf 100644 --- a/charts/library/common-test/tests/traefik/middleware_forwardAuth_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_forwardAuth_test.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_headers_test.yaml b/charts/library/common-test/tests/traefik/middleware_headers_test.yaml index dc25d25f5c5..bfc074498ca 100644 --- a/charts/library/common-test/tests/traefik/middleware_headers_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_headers_test.yaml @@ -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: diff --git a/charts/library/common-test/tests/traefik/middleware_ipAllowList_test.yaml b/charts/library/common-test/tests/traefik/middleware_ipAllowList_test.yaml index ad9a306b1ab..456ccf4b4ff 100644 --- a/charts/library/common-test/tests/traefik/middleware_ipAllowList_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_ipAllowList_test.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_pluginBouncer_test.yaml b/charts/library/common-test/tests/traefik/middleware_pluginBouncer_test.yaml index 6200ac9f0fd..4a95eab6ce8 100644 --- a/charts/library/common-test/tests/traefik/middleware_pluginBouncer_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_pluginBouncer_test.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_pluginGeoblock_test.yaml b/charts/library/common-test/tests/traefik/middleware_pluginGeoblock_test.yaml index 6a457a6712e..0b86199ee6c 100644 --- a/charts/library/common-test/tests/traefik/middleware_pluginGeoblock_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_pluginGeoblock_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_pluginModSecurity_test.yaml b/charts/library/common-test/tests/traefik/middleware_pluginModSecurity_test.yaml index 14f63a6a707..339c233d471 100644 --- a/charts/library/common-test/tests/traefik/middleware_pluginModSecurity_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_pluginModSecurity_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_pluginRealIP_test.yaml b/charts/library/common-test/tests/traefik/middleware_pluginRealIP_test.yaml index 5b1990c95ee..e713df6d46c 100644 --- a/charts/library/common-test/tests/traefik/middleware_pluginRealIP_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_pluginRealIP_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_pluginRewriteResponseHeaders_test.yaml b/charts/library/common-test/tests/traefik/middleware_pluginRewriteResponseHeaders_test.yaml index 93c3d91fd47..31d1608c0f7 100644 --- a/charts/library/common-test/tests/traefik/middleware_pluginRewriteResponseHeaders_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_pluginRewriteResponseHeaders_test.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_pluginThemePark_test.yaml b/charts/library/common-test/tests/traefik/middleware_pluginThemePark_test.yaml index deaad41d96e..9a744825de7 100644 --- a/charts/library/common-test/tests/traefik/middleware_pluginThemePark_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_pluginThemePark_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_rateLimit_test.yaml b/charts/library/common-test/tests/traefik/middleware_rateLimit_test.yaml index 43732c1cd25..e835a78b1c0 100644 --- a/charts/library/common-test/tests/traefik/middleware_rateLimit_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_rateLimit_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_redirectRegex_test.yaml b/charts/library/common-test/tests/traefik/middleware_redirectRegex_test.yaml index e99004aa1c4..e63640b2963 100644 --- a/charts/library/common-test/tests/traefik/middleware_redirectRegex_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_redirectRegex_test.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_redirectScheme_test.yaml b/charts/library/common-test/tests/traefik/middleware_redirectScheme_test.yaml index 80d8696d927..54bb47547ee 100644 --- a/charts/library/common-test/tests/traefik/middleware_redirectScheme_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_redirectScheme_test.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_replacePathRegex_test.yaml b/charts/library/common-test/tests/traefik/middleware_replacePathRegex_test.yaml index 97127272f83..539b0e9773d 100644 --- a/charts/library/common-test/tests/traefik/middleware_replacePathRegex_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_replacePathRegex_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_replacePath_test.yaml b/charts/library/common-test/tests/traefik/middleware_replacePath_test.yaml index 319d6eaaf1c..80abb73c533 100644 --- a/charts/library/common-test/tests/traefik/middleware_replacePath_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_replacePath_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_retry_test.yaml b/charts/library/common-test/tests/traefik/middleware_retry_test.yaml index 89e194fddfa..782e21a2bdc 100644 --- a/charts/library/common-test/tests/traefik/middleware_retry_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_retry_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/middleware_stripPrefix.yaml b/charts/library/common-test/tests/traefik/middleware_stripPrefix.yaml index bb0117c7881..c6000f9a17d 100644 --- a/charts/library/common-test/tests/traefik/middleware_stripPrefix.yaml +++ b/charts/library/common-test/tests/traefik/middleware_stripPrefix.yaml @@ -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] diff --git a/charts/library/common-test/tests/traefik/middleware_stripPrefixRegex_test.yaml b/charts/library/common-test/tests/traefik/middleware_stripPrefixRegex_test.yaml index eb6729060de..0a6410a71ab 100644 --- a/charts/library/common-test/tests/traefik/middleware_stripPrefixRegex_test.yaml +++ b/charts/library/common-test/tests/traefik/middleware_stripPrefixRegex_test.yaml @@ -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 diff --git a/charts/library/common-test/tests/traefik/name_test.yaml b/charts/library/common-test/tests/traefik/name_test.yaml index ae827842a03..88f9fe1dbfd 100644 --- a/charts/library/common-test/tests/traefik/name_test.yaml +++ b/charts/library/common-test/tests/traefik/name_test.yaml @@ -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: diff --git a/charts/library/common-test/tests/traefik/validation_test.yaml b/charts/library/common-test/tests/traefik/validation_test.yaml index 396a8ba8ae1..ddd86c71ca3 100644 --- a/charts/library/common-test/tests/traefik/validation_test.yaml +++ b/charts/library/common-test/tests/traefik/validation_test.yaml @@ -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 diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index e116e9cdfd4..96a22832c10 100644 --- a/charts/library/common/Chart.yaml +++ b/charts/library/common/Chart.yaml @@ -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 diff --git a/charts/library/common/templates/spawner/traefik/_middleware.tpl b/charts/library/common/templates/spawner/traefik/_middleware.tpl index 60d4addc740..4bb46d519d3 100644 --- a/charts/library/common/templates/spawner/traefik/_middleware.tpl +++ b/charts/library/common/templates/spawner/traefik/_middleware.tpl @@ -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 diff --git a/charts/library/common/values.yaml b/charts/library/common/values.yaml index b3a956313e3..c75b918bcdd 100644 --- a/charts/library/common/values.yaml +++ b/charts/library/common/values.yaml @@ -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: diff --git a/website/src/content/docs/common/middlewares/add-prefix.md b/website/src/content/docs/common/middlewares/add-prefix.md deleted file mode 100644 index a65c3b3f5d1..00000000000 --- a/website/src/content/docs/common/middlewares/add-prefix.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/basic-auth.md b/website/src/content/docs/common/middlewares/basic-auth.md deleted file mode 100644 index 0e18bfd276c..00000000000 --- a/website/src/content/docs/common/middlewares/basic-auth.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/buffering.md b/website/src/content/docs/common/middlewares/buffering.md deleted file mode 100644 index 5ae7eeae0c6..00000000000 --- a/website/src/content/docs/common/middlewares/buffering.md +++ /dev/null @@ -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" -``` diff --git a/website/src/content/docs/common/middlewares/chain.md b/website/src/content/docs/common/middlewares/chain.md deleted file mode 100644 index ddf2b7ef7bb..00000000000 --- a/website/src/content/docs/common/middlewares/chain.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/forward-auth.md b/website/src/content/docs/common/middlewares/forward-auth.md deleted file mode 100644 index 162caa81fc1..00000000000 --- a/website/src/content/docs/common/middlewares/forward-auth.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/headers.md b/website/src/content/docs/common/middlewares/headers.md deleted file mode 100644 index 7ee8017db78..00000000000 --- a/website/src/content/docs/common/middlewares/headers.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/index.md b/website/src/content/docs/common/middlewares/index.md index d7d031f42b7..42c226b0e4e 100644 --- a/website/src/content/docs/common/middlewares/index.md +++ b/website/src/content/docs/common/middlewares/index.md @@ -1,5 +1,5 @@ --- -title: Middlewares +title: Ingress Middlewares --- :::note @@ -11,7 +11,7 @@ title: Middlewares ## Appears in -- `.Values.middlewares` +- `.Values.ingressMiddlewares` ## Naming scheme @@ -25,224 +25,240 @@ title: Middlewares --- -## `middlewares` +## `ingressMiddlewares` Create Middleware objects -| | | -| ---------- | ------------- | -| Key | `middlewares` | -| Type | `map` | -| Required | โŒ | -| Helm `tpl` | โŒ | -| Default | `{}` | +| | | +| ---------- | -------------------- | +| Key | `ingressMiddlewares` | +| Type | `map` | +| Required | โŒ | +| Helm `tpl` | โŒ | +| Default | `{}` | Example ```yaml -middlewares: {} +ingressMiddlewares: {} ``` --- -### `$name` +### `$provider` Define Middleware -| | | -| ---------- | ------------------- | -| Key | `middlewares.$name` | -| Type | `map` | -| Required | โœ… | -| Helm `tpl` | โŒ | -| Default | `{}` | +:::note + +- Available providers are: + - [traefik](/common/middlewares/traefik) + +::: + +| | | +| ---------- | ------------------------------ | +| Key | `ingressMiddlewares.$provider` | +| Type | `map` | +| Required | โœ… | +| Helm `tpl` | โŒ | +| Default | `{}` | Example ```yaml -middlewares: - middleware-name: {} +ingressMiddlewares: + traefik: {} ``` --- -#### `enabled` +#### `$name` -Enables or Disables the Configmap +Define Middleware -| | | -| ---------- | ------------------------- | -| Key | `configmap.$name.enabled` | -| Type | `bool` | -| Required | โœ… | -| Helm `tpl` | โœ… | -| Default | `false` | +| | | +| ---------- | ------------------------------------ | +| Key | `ingressMiddlewares.$provider.$name` | +| Type | `map` | +| Required | โœ… | +| Helm `tpl` | โŒ | +| Default | `{}` | Example ```yaml -middlewares: - middleware-name: - enabled: true +ingressMiddlewares: + traefik: + middleware-name: {} ``` --- -#### `expandObjectName` +##### `enabled` + +Enables or Disables the Middleware + +| | | +| ---------- | -------------------------------------------- | +| Key | `ingressMiddlewares.$provider.$name.enabled` | +| Type | `bool` | +| Required | โœ… | +| Helm `tpl` | โœ… | +| Default | `false` | + +Example + +```yaml +ingressMiddlewares: + traefik: + middleware-name: + enabled: true +``` + +--- + +##### `expandObjectName` Whether to expand (adding the fullname as prefix) the middleware name. -| | | -| ---------- | ---------------------------------- | -| Key | `configmap.$name.expandObjectName` | -| Type | `bool` | -| Required | โœ… | -| Helm `tpl` | โœ… | -| Default | `true` | +| | | +| ---------- | ---------------------------------------------------- | +| Key | `ingressMiddleware.$provider.$name.expandObjectName` | +| Type | `bool` | +| Required | โœ… | +| Helm `tpl` | โœ… | +| Default | `true` | Example ```yaml -middlewares: - middleware-name: - expandObjectName: false +ingressMiddlewares: + traefik: + middleware-name: + expandObjectName: false ``` --- -#### `namespace` +##### `namespace` Define the namespace for this object -| | | -| ---------- | ----------------------------- | -| Key | `middlewares.$name.namespace` | -| Type | `string` | -| Required | โŒ | -| Helm `tpl` | โœ… | -| Default | `""` | +| | | +| ---------- | ---------------------------------------------- | +| Key | `ingressMiddlewares.$provider.$name.namespace` | +| Type | `string` | +| Required | โŒ | +| Helm `tpl` | โœ… | +| Default | `""` | Example ```yaml -middlewares: - middleware-name: - namespace: some-namespace +ingressMiddlewares: + traefik: + middleware-name: + namespace: some-namespace ``` --- -#### `type` - -Define the type for this object - -Available types: - -- [add-prefix](/common/middlewares/add-prefix) -- [basic-auth](/common/middlewares/basic-auth) -- [buffering](/common/middlewares/buffering) -- [chain](/common/middlewares/chain) -- [compress](/common/middlewares/compress) -- [content-type](/common/middlewares/content-type) -- [forward-auth](/common/middlewares/forward-auth) -- [headers](/common/middlewares/headers) -- [ip-allow-list](/common/middlewares/ip-allow-list) -- [plugin-bouncer](/common/middlewares/plugin-bouncer) -- [plugin-geoblock](/common/middlewares/plugin-geoblock) -- [plugin-mod-security](/common/middlewares/plugin-mod-security) -- [plugin-real-ip](/common/middlewares/plugin-real-ip) -- [plugin-rewrite-response-headers](/common/middlewares/plugin-rewrite-response-headers) -- [plugin-theme-park](/common/middlewares/plugin-theme-park) -- [rate-limit](/common/middlewares/rate-limit) -- [redirect-regex](/common/middlewares/redirect-regex) -- [redirect-scheme](/common/middlewares/redirect-scheme) -- [replace-path-regex](/common/middlewares/replace-path-regex) -- [replace-path](/common/middlewares/replace-path) -- [retry](/common/middlewares/retry) -- [strip-prefix-regex](/common/middlewares/strip-prefix-regex) -- [strip-prefix](/common/middlewares/strip-prefix) - -| | | -| ---------- | ------------------------ | -| Key | `middlewares.$name.type` | -| Type | `string` | -| Required | โŒ | -| Helm `tpl` | โŒ | -| Default | `""` | - -Example - -```yaml -middlewares: - middleware-name: - type: buffering -``` - ---- - -#### `labels` +##### `labels` Additional labels for middleware -| | | -| ---------- | -------------------------- | -| Key | `middlewares.$name.labels` | -| Type | `map` | -| Required | โŒ | -| Helm `tpl` | โœ… (On value only) | -| Default | `{}` | +| | | +| ---------- | ------------------------------------------- | +| Key | `ingressMiddlewares.$provider.$name.labels` | +| Type | `map` | +| Required | โŒ | +| Helm `tpl` | โœ… (On value only) | +| Default | `{}` | Example ```yaml -middlewares: - middleware-name: - labels: - key: value +ingressMiddlewares: + traefik: + middleware-name: + labels: + key: value ``` --- -#### `annotations` +##### `annotations` Additional annotations for middleware -| | | -| ---------- | ------------------------------- | -| Key | `middlewares.$name.annotations` | -| Type | `map` | -| Required | โŒ | -| Helm `tpl` | โœ… (On value only) | -| Default | `{}` | +| | | +| ---------- | ------------------------------------------------ | +| Key | `ingressMiddlewares.$provider.$name.annotations` | +| Type | `map` | +| Required | โŒ | +| Helm `tpl` | โœ… (On value only) | +| Default | `{}` | Example ```yaml -middlewares: - middleware-name: - annotations: - key: value +ingressMiddlewares: + traefik: + middleware-name: + annotations: + key: value ``` --- -#### `data` +##### `data` Define the data of the middleware -| | | -| ---------- | ------------------------ | -| Key | `middlewares.$name.data` | -| Type | `map` | -| Required | โœ… | -| Helm `tpl` | โœ… | -| Example | `{}` | +| | | +| ---------- | ----------------------------------------- | +| Key | `ingressMiddlewares.$provider.$name.data` | +| Type | `map` | +| Required | โœ… | +| Helm `tpl` | โœ… | +| Example | `{}` | ```yaml -middlewares: - middleware-name: - data: - key: value +ingressMiddlewares: + traefik: + middleware-name: + data: + key: value +``` + +--- + +##### `type` + +Define the type for this object + +:::note + +See the [provider](/common/middlewares#provider) documentation for more information. + +::: + +| | | +| ---------- | ----------------------------------------- | +| Key | `ingressMiddlewares.$provider.$name.type` | +| Type | `string` | +| Required | โŒ | +| Helm `tpl` | โŒ | +| Default | `""` | + +Example + +```yaml +ingressMiddlewares: + traefik: + middleware-name: + type: buffering ``` --- @@ -250,24 +266,25 @@ middlewares: ## Full Examples ```yaml -middlewares: - middleware-name: - enabled: true - type: buffering - expandObjectName: false - labels: - key: value - keytpl: "{{ .Values.some.value }}" - annotations: - key: value - keytpl: "{{ .Values.some.value }}" - data: - key: value +ingressMiddlewares: + traefik: + middleware-name: + enabled: true + type: buffering + expandObjectName: false + labels: + key: value + keytpl: "{{ .Values.some.value }}" + annotations: + key: value + keytpl: "{{ .Values.some.value }}" + data: + key: value - other-middleware-name: - enabled: true - type: buffering - namespace: some-namespace - data: - key: value + other-middleware-name: + enabled: true + type: buffering + namespace: some-namespace + data: + key: value ``` diff --git a/website/src/content/docs/common/middlewares/ip-allow-list.md b/website/src/content/docs/common/middlewares/ip-allow-list.md deleted file mode 100644 index 0221768259d..00000000000 --- a/website/src/content/docs/common/middlewares/ip-allow-list.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/plugin-bouncer.md b/website/src/content/docs/common/middlewares/plugin-bouncer.md deleted file mode 100644 index 3e06a0627c0..00000000000 --- a/website/src/content/docs/common/middlewares/plugin-bouncer.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/plugin-geoblock.md b/website/src/content/docs/common/middlewares/plugin-geoblock.md deleted file mode 100644 index 7d3510d7388..00000000000 --- a/website/src/content/docs/common/middlewares/plugin-geoblock.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/plugin-mod-security.md b/website/src/content/docs/common/middlewares/plugin-mod-security.md deleted file mode 100644 index 9763e372149..00000000000 --- a/website/src/content/docs/common/middlewares/plugin-mod-security.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/plugin-real-ip.md b/website/src/content/docs/common/middlewares/plugin-real-ip.md deleted file mode 100644 index 48ccf661f82..00000000000 --- a/website/src/content/docs/common/middlewares/plugin-real-ip.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/plugin-rewrite-response-headers.md b/website/src/content/docs/common/middlewares/plugin-rewrite-response-headers.md deleted file mode 100644 index be8527ec0eb..00000000000 --- a/website/src/content/docs/common/middlewares/plugin-rewrite-response-headers.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/plugin-theme-park.md b/website/src/content/docs/common/middlewares/plugin-theme-park.md deleted file mode 100644 index 9a2d96a3748..00000000000 --- a/website/src/content/docs/common/middlewares/plugin-theme-park.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/rate-limit.md b/website/src/content/docs/common/middlewares/rate-limit.md deleted file mode 100644 index d3b8d31d7ce..00000000000 --- a/website/src/content/docs/common/middlewares/rate-limit.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/redirect-regex.md b/website/src/content/docs/common/middlewares/redirect-regex.md deleted file mode 100644 index fca5a1d841b..00000000000 --- a/website/src/content/docs/common/middlewares/redirect-regex.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/redirect-scheme.md b/website/src/content/docs/common/middlewares/redirect-scheme.md deleted file mode 100644 index 00f2585d6f3..00000000000 --- a/website/src/content/docs/common/middlewares/redirect-scheme.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/replace-path-regex.md b/website/src/content/docs/common/middlewares/replace-path-regex.md deleted file mode 100644 index a355c3e139f..00000000000 --- a/website/src/content/docs/common/middlewares/replace-path-regex.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/replace-path.md b/website/src/content/docs/common/middlewares/replace-path.md deleted file mode 100644 index db1859af426..00000000000 --- a/website/src/content/docs/common/middlewares/replace-path.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/retry.md b/website/src/content/docs/common/middlewares/retry.md deleted file mode 100644 index 641d8528c73..00000000000 --- a/website/src/content/docs/common/middlewares/retry.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/strip-prefix-regex.md b/website/src/content/docs/common/middlewares/strip-prefix-regex.md deleted file mode 100644 index 76403a8bcc1..00000000000 --- a/website/src/content/docs/common/middlewares/strip-prefix-regex.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/strip-prefix.md b/website/src/content/docs/common/middlewares/strip-prefix.md deleted file mode 100644 index 08785406561..00000000000 --- a/website/src/content/docs/common/middlewares/strip-prefix.md +++ /dev/null @@ -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 -``` diff --git a/website/src/content/docs/common/middlewares/traefik/add-prefix.md b/website/src/content/docs/common/middlewares/traefik/add-prefix.md new file mode 100644 index 00000000000..d956fd36e65 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/add-prefix.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/basic-auth.md b/website/src/content/docs/common/middlewares/traefik/basic-auth.md new file mode 100644 index 00000000000..180b4644c8a --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/basic-auth.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/buffering.md b/website/src/content/docs/common/middlewares/traefik/buffering.md new file mode 100644 index 00000000000..3ddce72617b --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/buffering.md @@ -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" +``` diff --git a/website/src/content/docs/common/middlewares/traefik/chain.md b/website/src/content/docs/common/middlewares/traefik/chain.md new file mode 100644 index 00000000000..7a38ee54fc7 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/chain.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/compress.md b/website/src/content/docs/common/middlewares/traefik/compress.md similarity index 62% rename from website/src/content/docs/common/middlewares/compress.md rename to website/src/content/docs/common/middlewares/traefik/compress.md index 94d2dfb44bf..41272b35a0c 100644 --- a/website/src/content/docs/common/middlewares/compress.md +++ b/website/src/content/docs/common/middlewares/traefik/compress.md @@ -5,14 +5,14 @@ title: Compress Middleware :::note - Examples under each key are only to be used as a placement guide -- See the [Full Examples](/common/middlewares/compress#full-examples) section for complete examples. +- See the [Full Examples](/common/middlewares/traefik/compress#full-examples) section for complete examples. - Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/compress) ::: ## Appears in -- `.Values.middlewares.$name.data` +- `.Values.ingressMiddlewares.traefik.$name.data` :::tip @@ -26,8 +26,9 @@ title: Compress Middleware ## Full Examples ```yaml -middlewares: - middleware-name: - enabled: true - type: compress +ingressMiddlewares: + traefik: + middleware-name: + enabled: true + type: compress ``` diff --git a/website/src/content/docs/common/middlewares/content-type.md b/website/src/content/docs/common/middlewares/traefik/content-type.md similarity index 62% rename from website/src/content/docs/common/middlewares/content-type.md rename to website/src/content/docs/common/middlewares/traefik/content-type.md index 66d4e1e2159..3364b5245e8 100644 --- a/website/src/content/docs/common/middlewares/content-type.md +++ b/website/src/content/docs/common/middlewares/traefik/content-type.md @@ -5,14 +5,14 @@ title: Content Type Middleware :::note - Examples under each key are only to be used as a placement guide -- See the [Full Examples](/common/middlewares/content-type#full-examples) section for complete examples. +- See the [Full Examples](/common/middlewares/traefik/content-type#full-examples) section for complete examples. - Upstream documentation for this middleware can be found [here](https://doc.traefik.io/traefik/middlewares/http/contenttype) ::: ## Appears in -- `.Values.middlewares.$name.data` +- `.Values.ingressMiddlewares.$name.data` :::tip @@ -26,8 +26,9 @@ title: Content Type Middleware ## Full Examples ```yaml -middlewares: - middleware-name: - enabled: true - type: content-type +ingressMiddlewares: + traefik: + middleware-name: + enabled: true + type: content-type ``` diff --git a/website/src/content/docs/common/middlewares/traefik/forward-auth.md b/website/src/content/docs/common/middlewares/traefik/forward-auth.md new file mode 100644 index 00000000000..3b6707981d3 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/forward-auth.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/headers.md b/website/src/content/docs/common/middlewares/traefik/headers.md new file mode 100644 index 00000000000..1b382d7d1b7 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/headers.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/index.md b/website/src/content/docs/common/middlewares/traefik/index.md new file mode 100644 index 00000000000..8c306bacc74 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/index.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/ip-allow-list.md b/website/src/content/docs/common/middlewares/traefik/ip-allow-list.md new file mode 100644 index 00000000000..b8cf13a017e --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/ip-allow-list.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/plugin-bouncer.md b/website/src/content/docs/common/middlewares/traefik/plugin-bouncer.md new file mode 100644 index 00000000000..3716a4d72e3 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/plugin-bouncer.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/plugin-geoblock.md b/website/src/content/docs/common/middlewares/traefik/plugin-geoblock.md new file mode 100644 index 00000000000..dc04007c6e8 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/plugin-geoblock.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/plugin-mod-security.md b/website/src/content/docs/common/middlewares/traefik/plugin-mod-security.md new file mode 100644 index 00000000000..435eb18b3bc --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/plugin-mod-security.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/plugin-real-ip.md b/website/src/content/docs/common/middlewares/traefik/plugin-real-ip.md new file mode 100644 index 00000000000..4132568405b --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/plugin-real-ip.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/plugin-rewrite-response-headers.md b/website/src/content/docs/common/middlewares/traefik/plugin-rewrite-response-headers.md new file mode 100644 index 00000000000..e6f3974f82c --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/plugin-rewrite-response-headers.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/plugin-theme-park.md b/website/src/content/docs/common/middlewares/traefik/plugin-theme-park.md new file mode 100644 index 00000000000..90fc5f33889 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/plugin-theme-park.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/rate-limit.md b/website/src/content/docs/common/middlewares/traefik/rate-limit.md new file mode 100644 index 00000000000..cc539e0bc12 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/rate-limit.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/redirect-regex.md b/website/src/content/docs/common/middlewares/traefik/redirect-regex.md new file mode 100644 index 00000000000..bb56e45b2f3 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/redirect-regex.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/redirect-scheme.md b/website/src/content/docs/common/middlewares/traefik/redirect-scheme.md new file mode 100644 index 00000000000..368c3d16e90 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/redirect-scheme.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/replace-path-regex.md b/website/src/content/docs/common/middlewares/traefik/replace-path-regex.md new file mode 100644 index 00000000000..c146033f645 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/replace-path-regex.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/replace-path.md b/website/src/content/docs/common/middlewares/traefik/replace-path.md new file mode 100644 index 00000000000..1ab893bcd3c --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/replace-path.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/retry.md b/website/src/content/docs/common/middlewares/traefik/retry.md new file mode 100644 index 00000000000..5b28284614a --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/retry.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/strip-prefix-regex.md b/website/src/content/docs/common/middlewares/traefik/strip-prefix-regex.md new file mode 100644 index 00000000000..3afdea740d1 --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/strip-prefix-regex.md @@ -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 +``` diff --git a/website/src/content/docs/common/middlewares/traefik/strip-prefix.md b/website/src/content/docs/common/middlewares/traefik/strip-prefix.md new file mode 100644 index 00000000000..c05621b620f --- /dev/null +++ b/website/src/content/docs/common/middlewares/traefik/strip-prefix.md @@ -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 +```