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 +```