From eae4e35dd3614d2d5acc598ad6c9f092a4844f96 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Fri, 9 Aug 2024 12:08:41 -0400 Subject: [PATCH 01/13] Bump conductor and operator charts Signed-off-by: Ian Stanton --- charts/tembo/Chart.lock | 8 ++++---- charts/tembo/Chart.yaml | 4 ++-- charts/tembo/charts/conductor-0.4.0.tgz | Bin 27230 -> 0 bytes charts/tembo/charts/conductor-0.5.2.tgz | Bin 0 -> 27203 bytes charts/tembo/charts/tembo-operator-0.6.3.tgz | Bin 178250 -> 0 bytes charts/tembo/charts/tembo-operator-0.7.1.tgz | Bin 0 -> 178255 bytes 6 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 charts/tembo/charts/conductor-0.4.0.tgz create mode 100644 charts/tembo/charts/conductor-0.5.2.tgz delete mode 100644 charts/tembo/charts/tembo-operator-0.6.3.tgz create mode 100644 charts/tembo/charts/tembo-operator-0.7.1.tgz diff --git a/charts/tembo/Chart.lock b/charts/tembo/Chart.lock index db64081..3837c7b 100644 --- a/charts/tembo/Chart.lock +++ b/charts/tembo/Chart.lock @@ -1,9 +1,9 @@ dependencies: - name: tembo-operator repository: https://tembo-io.github.io/tembo - version: 0.6.3 + version: 0.7.1 - name: conductor repository: https://tembo-io.github.io/tembo - version: 0.4.0 -digest: sha256:6b6db9fe5f576029c275c50fcce3a4ab45135e5100743a5861c9db415c934d91 -generated: "2024-05-29T14:29:56.570426293-04:00" + version: 0.5.2 +digest: sha256:0d24708421bd37513e0913d2f4431306336f72758154c6b56c52d6cb4d704aa3 +generated: "2024-08-09T11:56:29.317922233-04:00" diff --git a/charts/tembo/Chart.yaml b/charts/tembo/Chart.yaml index 52e85e2..50a81ad 100644 --- a/charts/tembo/Chart.yaml +++ b/charts/tembo/Chart.yaml @@ -6,9 +6,9 @@ keywords: - tembo dependencies: - name: tembo-operator - version: 0.6.3 + version: 0.7.1 repository: https://tembo-io.github.io/tembo - name: conductor - version: 0.4.0 + version: 0.5.2 condition: global.conductorEnabled repository: https://tembo-io.github.io/tembo diff --git a/charts/tembo/charts/conductor-0.4.0.tgz b/charts/tembo/charts/conductor-0.4.0.tgz deleted file mode 100644 index 4db974425cab7def806ce0f7e14348f416bd3980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27230 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⪚SB%r9Z>O5Ru^0;WOVg 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 b(Y=~_Nmqs5@IQVf^}hVrSP4}Q2lc-Ia$cr% diff --git a/charts/tembo/charts/conductor-0.5.2.tgz b/charts/tembo/charts/conductor-0.5.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b5d87db8cc8f19b439ddd4de3c45dc15dc7630a2 GIT binary patch literal 27203 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 X>|y)%Z1C@YQ6Cw)A2MLoP+Dc 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%0DFohp&m2}=*Z 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 U&G!3$0RRC1|2}K+$^g0*01DD>3IG5A diff --git a/charts/tembo/charts/tembo-operator-0.7.1.tgz b/charts/tembo/charts/tembo-operator-0.7.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8470f27f8d3e85a9fc7e165ada277f0f3bc680fa GIT binary patch literal 178255 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 z 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 literal 0 HcmV?d00001 From 87a66643814cd8b410cd3468edd3b86fbb56049c Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Fri, 9 Aug 2024 12:36:11 -0400 Subject: [PATCH 02/13] Update conductor and operator image tags Signed-off-by: Ian Stanton --- charts/tembo/values.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/tembo/values.yaml b/charts/tembo/values.yaml index dc7e0fa..544bf11 100644 --- a/charts/tembo/values.yaml +++ b/charts/tembo/values.yaml @@ -33,7 +33,7 @@ conductor: image: repository: quay.io/tembo/conductor - tag: "9644499" + tag: "e534b50" pullPolicy: IfNotPresent # We should reconfigure the defaults @@ -86,7 +86,7 @@ tembo-operator: repository: quay.io/tembo/tembo-operator pullPolicy: Always # -- Overrides the image tag whose default is latest - tag: "9644499" + tag: "e534b50" crds: # -- Specifies whether the CRDs should be created when installing the chart. @@ -182,7 +182,7 @@ tembo-operator: repository: quay.io/tembo/tembo-pod-init pullPolicy: IfNotPresent # -- Overrides the image tag whose default is latest - tag: "9644499" + tag: "e534b50" extraEnv: [] From 5d93dc209858e32730e94568ace8d6589a346f37 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Fri, 9 Aug 2024 12:59:04 -0400 Subject: [PATCH 03/13] Bump tembo-ui and dataplane-webserver images Signed-off-by: Ian Stanton --- charts/tembo/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/tembo/values.yaml b/charts/tembo/values.yaml index 544bf11..f17cbec 100644 --- a/charts/tembo/values.yaml +++ b/charts/tembo/values.yaml @@ -560,7 +560,7 @@ dataplaneWebserver: image: repository: quay.io/tembo/dataplane-webserver - tag: "9644499" + tag: "e534b50" pullPolicy: IfNotPresent # We should reconfigure the defaults @@ -616,7 +616,7 @@ temboUI: image: repository: quay.io/tembo/mahout-ui - tag: aed9151 + tag: 31b10a3 pullPolicy: IfNotPresent # We should reconfigure the defaults From 50c038af118d17a9d879e2ee2dfdbb2d369dcd14 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Fri, 9 Aug 2024 17:04:10 -0400 Subject: [PATCH 04/13] Update control-plane components Signed-off-by: Ian Stanton --- charts/tembo/values.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/tembo/values.yaml b/charts/tembo/values.yaml index f17cbec..929d77c 100644 --- a/charts/tembo/values.yaml +++ b/charts/tembo/values.yaml @@ -279,7 +279,7 @@ cpService: image: repository: quay.io/coredb/cp-service - tag: "release-24.2.1" + tag: "cd0d37a" pullPolicy: IfNotPresent resources: @@ -348,7 +348,7 @@ cpWebserver: image: repository: quay.io/coredb/cp-service - tag: "release-24.2.1" + tag: "cd0d37a" pullPolicy: IfNotPresent # We should reconfigure the defaults @@ -414,7 +414,7 @@ cpReconciler: image: repository: quay.io/coredb/cp-service - tag: "release-24.2.1" + tag: "cd0d37a" pullPolicy: IfNotPresent resources: @@ -485,7 +485,7 @@ cpMetricsWatcher: image: repository: quay.io/coredb/cp-service - tag: "release-24.2.1" + tag: "cd0d37a" pullPolicy: IfNotPresent resources: From 8bb1c0a04a10eee3f4499839738e22c50eef94fd Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Tue, 13 Aug 2024 08:25:50 -0400 Subject: [PATCH 05/13] Bump extension versions and update queue conn var Signed-off-by: Ian Stanton --- charts/tembo/templates/cp-webserver/deployment.yaml | 2 +- charts/tembo/templates/jobs/init-cp-database.yaml | 6 +++--- charts/tembo/templates/jobs/init-cp-queue-database.yaml | 4 ++-- charts/tembo/values.yaml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/charts/tembo/templates/cp-webserver/deployment.yaml b/charts/tembo/templates/cp-webserver/deployment.yaml index cdd0c11..984c02c 100644 --- a/charts/tembo/templates/cp-webserver/deployment.yaml +++ b/charts/tembo/templates/cp-webserver/deployment.yaml @@ -48,7 +48,7 @@ spec: secretKeyRef: name: control-plane-connection key: rw_uri - - name: POSTGRES_QUEUE_CONNECTION + - name: QUEUE_CONNECTION_URI valueFrom: secretKeyRef: name: control-plane-queue-connection diff --git a/charts/tembo/templates/jobs/init-cp-database.yaml b/charts/tembo/templates/jobs/init-cp-database.yaml index 1037c26..bce93a4 100644 --- a/charts/tembo/templates/jobs/init-cp-database.yaml +++ b/charts/tembo/templates/jobs/init-cp-database.yaml @@ -33,9 +33,9 @@ spec: value: top trunk_installs: - name: pgmq - version: 0.14.2 + version: 0.20.0 - name: pg_partman - version: 4.7.3 + version: 4.7.4 - name: temporal_tables version: 1.2.2 - name: pg_cron @@ -50,7 +50,7 @@ spec: locations: - database: postgres enabled: true - version: 0.14.2 + version: 0.20.0 - name: temporal_tables locations: - database: postgres diff --git a/charts/tembo/templates/jobs/init-cp-queue-database.yaml b/charts/tembo/templates/jobs/init-cp-queue-database.yaml index ed9bd31..d5241ac 100644 --- a/charts/tembo/templates/jobs/init-cp-queue-database.yaml +++ b/charts/tembo/templates/jobs/init-cp-queue-database.yaml @@ -57,7 +57,7 @@ spec: value: all trunk_installs: - name: pgmq - version: 0.14.2 + version: 0.20.0 - name: pg_partman version: 4.7.3 extensions: @@ -65,7 +65,7 @@ spec: locations: - database: postgres enabled: true - version: 0.14.2 + version: 0.20.0 - name: pg_partman locations: - database: postgres diff --git a/charts/tembo/values.yaml b/charts/tembo/values.yaml index 929d77c..d223f48 100644 --- a/charts/tembo/values.yaml +++ b/charts/tembo/values.yaml @@ -322,7 +322,7 @@ cpService: secretKeyRef: name: control-plane-connection key: rw_uri - - name: POSTGRES_QUEUE_CONNECTION + - name: QUEUE_CONNECTION_URI valueFrom: secretKeyRef: name: control-plane-queue-connection @@ -459,7 +459,7 @@ cpReconciler: secretKeyRef: name: control-plane-connection key: rw_uri - - name: POSTGRES_QUEUE_CONNECTION + - name: QUEUE_CONNECTION_URI valueFrom: secretKeyRef: name: control-plane-queue-connection @@ -534,7 +534,7 @@ cpMetricsWatcher: secretKeyRef: name: control-plane-connection key: rw_uri - - name: POSTGRES_QUEUE_CONNECTION + - name: QUEUE_CONNECTION_URI valueFrom: secretKeyRef: name: control-plane-queue-connection From 886798a06875e64ac5474c15c878e3e0c5a4f68d Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Tue, 20 Aug 2024 14:31:48 -0400 Subject: [PATCH 06/13] Bump pgmq to 1.3.3 and add STORAGE_ARCHIVE_BUCKET value Signed-off-by: Ian Stanton --- charts/tembo/templates/jobs/init-cp-queue-database.yaml | 4 ++-- values.yaml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/charts/tembo/templates/jobs/init-cp-queue-database.yaml b/charts/tembo/templates/jobs/init-cp-queue-database.yaml index d5241ac..c7565e3 100644 --- a/charts/tembo/templates/jobs/init-cp-queue-database.yaml +++ b/charts/tembo/templates/jobs/init-cp-queue-database.yaml @@ -57,7 +57,7 @@ spec: value: all trunk_installs: - name: pgmq - version: 0.20.0 + version: 1.3.3 - name: pg_partman version: 4.7.3 extensions: @@ -65,7 +65,7 @@ spec: locations: - database: postgres enabled: true - version: 0.20.0 + version: 1.3.3 - name: pg_partman locations: - database: postgres diff --git a/values.yaml b/values.yaml index a896fff..bcb127c 100644 --- a/values.yaml +++ b/values.yaml @@ -31,6 +31,8 @@ tembo: value: "metrics_events" - name: IS_CLOUD_FORMATION value: "false" + - name: STORAGE_ARCHIVE_BUCKET + value: "tembo-storage" tembo-operator: controller: monitoring: From 34268a6a83e40c2d8588528d803cdb309d11a5a8 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Tue, 27 Aug 2024 13:46:11 -0400 Subject: [PATCH 07/13] Bump UI image with RBAC fix Signed-off-by: Ian Stanton --- charts/tembo/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/tembo/values.yaml b/charts/tembo/values.yaml index d223f48..62c4719 100644 --- a/charts/tembo/values.yaml +++ b/charts/tembo/values.yaml @@ -616,7 +616,7 @@ temboUI: image: repository: quay.io/tembo/mahout-ui - tag: 31b10a3 + tag: 19ef577 pullPolicy: IfNotPresent # We should reconfigure the defaults From 8483481a81b390682130604da9124036d7be407c Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Wed, 28 Aug 2024 09:52:14 -0400 Subject: [PATCH 08/13] Add placeholder for POSTGRES_RAG_CONNECTION Signed-off-by: Ian Stanton --- charts/tembo/templates/cp-webserver/deployment.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/charts/tembo/templates/cp-webserver/deployment.yaml b/charts/tembo/templates/cp-webserver/deployment.yaml index 984c02c..e6bead5 100644 --- a/charts/tembo/templates/cp-webserver/deployment.yaml +++ b/charts/tembo/templates/cp-webserver/deployment.yaml @@ -53,6 +53,11 @@ spec: secretKeyRef: name: control-plane-queue-connection key: rw_uri + - name: POSTGRES_RAG_CONNECTION + valueFrom: + secretKeyRef: + name: control-plane-connection + key: rw_uri - name: RUST_LOG value: {{ .Values.cpWebserver.logLevel }} - name: DEFAULT_CONTAINER_REGISTRY From cd43fede1ef08402f6b73082b20d435cf3cd1698 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Wed, 28 Aug 2024 11:30:09 -0400 Subject: [PATCH 09/13] Update dataplane and control-plane components Signed-off-by: Ian Stanton --- charts/tembo/values.yaml | 16 ++++++++-------- values.yaml | 4 +++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/charts/tembo/values.yaml b/charts/tembo/values.yaml index 62c4719..4307914 100644 --- a/charts/tembo/values.yaml +++ b/charts/tembo/values.yaml @@ -33,7 +33,7 @@ conductor: image: repository: quay.io/tembo/conductor - tag: "e534b50" + tag: "2295805" pullPolicy: IfNotPresent # We should reconfigure the defaults @@ -86,7 +86,7 @@ tembo-operator: repository: quay.io/tembo/tembo-operator pullPolicy: Always # -- Overrides the image tag whose default is latest - tag: "e534b50" + tag: "2295805" crds: # -- Specifies whether the CRDs should be created when installing the chart. @@ -182,7 +182,7 @@ tembo-operator: repository: quay.io/tembo/tembo-pod-init pullPolicy: IfNotPresent # -- Overrides the image tag whose default is latest - tag: "e534b50" + tag: "2295805" extraEnv: [] @@ -279,7 +279,7 @@ cpService: image: repository: quay.io/coredb/cp-service - tag: "cd0d37a" + tag: "5500bf0" pullPolicy: IfNotPresent resources: @@ -348,7 +348,7 @@ cpWebserver: image: repository: quay.io/coredb/cp-service - tag: "cd0d37a" + tag: "5500bf0" pullPolicy: IfNotPresent # We should reconfigure the defaults @@ -414,7 +414,7 @@ cpReconciler: image: repository: quay.io/coredb/cp-service - tag: "cd0d37a" + tag: "5500bf0" pullPolicy: IfNotPresent resources: @@ -485,7 +485,7 @@ cpMetricsWatcher: image: repository: quay.io/coredb/cp-service - tag: "cd0d37a" + tag: "5500bf0" pullPolicy: IfNotPresent resources: @@ -560,7 +560,7 @@ dataplaneWebserver: image: repository: quay.io/tembo/dataplane-webserver - tag: "e534b50" + tag: "2295805" pullPolicy: IfNotPresent # We should reconfigure the defaults diff --git a/values.yaml b/values.yaml index bcb127c..b082a20 100644 --- a/values.yaml +++ b/values.yaml @@ -18,7 +18,7 @@ tembo: name: control-plane-queue-connection key: rw_uri - name: CONTROL_PLANE_EVENTS_QUEUE - value: "saas_queue" + value: "control_plane_aws_data_1_use1" - name: DATA_PLANE_EVENTS_QUEUE value: "data_plane_events" - name: DATA_PLANE_BASEDOMAIN @@ -33,6 +33,8 @@ tembo: value: "false" - name: STORAGE_ARCHIVE_BUCKET value: "tembo-storage" + - name: PROMETHEUS_URL + value: "http://prometheus-kube-prometheus-stack.kube-prometheus-stack.svc.cluster.local" tembo-operator: controller: monitoring: From eac5eeac716a6903c76859080f16b4cda32cef9c Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Wed, 28 Aug 2024 18:47:17 -0400 Subject: [PATCH 10/13] Update queue names Signed-off-by: Ian Stanton --- values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/values.yaml b/values.yaml index b082a20..0154ac2 100644 --- a/values.yaml +++ b/values.yaml @@ -20,7 +20,7 @@ tembo: - name: CONTROL_PLANE_EVENTS_QUEUE value: "control_plane_aws_data_1_use1" - name: DATA_PLANE_EVENTS_QUEUE - value: "data_plane_events" + value: "conductor_aws_data_1_use1" - name: DATA_PLANE_BASEDOMAIN value: ~ - name: BACKUP_ARCHIVE_BUCKET @@ -28,7 +28,7 @@ tembo: - name: CF_TEMPLATE_BUCKET value: "tembo-cf-templates" - name: METRICS_EVENTS_QUEUE - value: "metrics_events" + value: "metrics_aws_data_1_use1" - name: IS_CLOUD_FORMATION value: "false" - name: STORAGE_ARCHIVE_BUCKET From b968ba93293663eb95a407d54eac32e3ee7e0fb9 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Tue, 3 Sep 2024 11:01:09 -0400 Subject: [PATCH 11/13] Update PROMETHEUS_URL Signed-off-by: Ian Stanton --- values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/values.yaml b/values.yaml index 0154ac2..f251071 100644 --- a/values.yaml +++ b/values.yaml @@ -34,7 +34,7 @@ tembo: - name: STORAGE_ARCHIVE_BUCKET value: "tembo-storage" - name: PROMETHEUS_URL - value: "http://prometheus-kube-prometheus-stack.kube-prometheus-stack.svc.cluster.local" + value: "http://tembo-kube-prometheus-stac-prometheus.tembo.svc.cluster.local:9090" tembo-operator: controller: monitoring: From b876492136d62d307c1579cf7a07e1edbbd576e4 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Tue, 3 Sep 2024 12:36:33 -0400 Subject: [PATCH 12/13] Update PROMETHEUS_URL and add LOKI_URL Signed-off-by: Ian Stanton --- values.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/values.yaml b/values.yaml index f251071..9c26cf9 100644 --- a/values.yaml +++ b/values.yaml @@ -34,7 +34,9 @@ tembo: - name: STORAGE_ARCHIVE_BUCKET value: "tembo-storage" - name: PROMETHEUS_URL - value: "http://tembo-kube-prometheus-stac-prometheus.tembo.svc.cluster.local:9090" + value: "http://tembo-kube-prometheus-stac-prometheus.tembo.svc.cluster.local:9090/api/v1/query" + - name: LOKI_URL + value: "http://loki-gateway.tembo.svc.cluster.local/loki/api/v1/query" tembo-operator: controller: monitoring: From ca359a887d46d5b38e7d85097c0f19b75c3e68d3 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Wed, 4 Sep 2024 11:05:59 -0400 Subject: [PATCH 13/13] Update traefik CRDs Signed-off-by: Ian Stanton --- charts/traefik/crds/ingressroute.yaml | 267 -- charts/traefik/crds/ingressroutetcp.yaml | 211 -- charts/traefik/crds/ingressrouteudp.yaml | 98 - charts/traefik/crds/middlewares.yaml | 917 ----- charts/traefik/crds/middlewarestcp.yaml | 85 - charts/traefik/crds/serverstransports.yaml | 128 - charts/traefik/crds/tlsoptions.yaml | 113 - charts/traefik/crds/tlsstores.yaml | 99 - charts/traefik/crds/traefik-v3.yaml | 3823 ++++++++++++++++++++ charts/traefik/crds/traefikservices.yaml | 381 -- 10 files changed, 3823 insertions(+), 2299 deletions(-) delete mode 100644 charts/traefik/crds/ingressroute.yaml delete mode 100644 charts/traefik/crds/ingressroutetcp.yaml delete mode 100644 charts/traefik/crds/ingressrouteudp.yaml delete mode 100644 charts/traefik/crds/middlewares.yaml delete mode 100644 charts/traefik/crds/middlewarestcp.yaml delete mode 100644 charts/traefik/crds/serverstransports.yaml delete mode 100644 charts/traefik/crds/tlsoptions.yaml delete mode 100644 charts/traefik/crds/tlsstores.yaml create mode 100644 charts/traefik/crds/traefik-v3.yaml delete mode 100644 charts/traefik/crds/traefikservices.yaml diff --git a/charts/traefik/crds/ingressroute.yaml b/charts/traefik/crds/ingressroute.yaml deleted file mode 100644 index 7f42480..0000000 --- a/charts/traefik/crds/ingressroute.yaml +++ /dev/null @@ -1,267 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: ingressroutes.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRoute - listKind: IngressRouteList - plural: ingressroutes - singular: ingressroute - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRoute is the CRD implementation of a Traefik HTTP Router. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteSpec defines the desired state of IngressRoute. - properties: - entryPoints: - description: 'EntryPoints defines the list of entry point names to - bind to. Entry points have to be configured in the static configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/entrypoints/ - Default: all.' - items: - type: string - type: array - routes: - description: Routes defines the list of routes. - items: - description: Route holds the HTTP route configuration. - properties: - kind: - description: Kind defines the kind of the route. Rule is the - only supported kind. - enum: - - Rule - type: string - match: - description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.9/routing/routers/#rule' - type: string - middlewares: - description: 'Middlewares defines the list of references to - Middleware resources. More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#kind-middleware' - items: - description: MiddlewareRef is a reference to a Middleware - resource. - properties: - name: - description: Name defines the name of the referenced Middleware - resource. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Middleware resource. - type: string - required: - - name - type: object - type: array - priority: - description: 'Priority defines the router''s priority. More - info: https://doc.traefik.io/traefik/v2.9/routing/routers/#priority' - type: integer - services: - description: Services defines the list of Service. It can contain - any combination of TraefikService and/or reference to a Kubernetes - Service. - items: - description: Service defines an upstream HTTP service to proxy - traffic to. - properties: - kind: - description: Kind defines the kind of the Service. - enum: - - Service - - TraefikService - type: string - name: - description: Name defines the name of the referenced Kubernetes - Service or TraefikService. The differentiation between - the two is specified in the Kind field. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service or TraefikService. - type: string - passHostHeader: - description: PassHostHeader defines whether the client - Host header is forwarded to the upstream Kubernetes - Service. By default, passHostHeader is true. - type: boolean - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. - This can be a reference to a named port. - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding defines how Traefik forwards - the response from the upstream Kubernetes Service to - the client. - properties: - flushInterval: - description: 'FlushInterval defines the interval, - in milliseconds, in between flushes to the client - while copying the response body. A negative value - means to flush immediately after each write to the - client. This configuration is ignored when ReverseProxy - recognizes a response as a streaming response; for - such responses, writes are flushed to the client - immediately. Default: 100ms' - type: string - type: object - scheme: - description: Scheme defines the scheme to use for the - request to the upstream Kubernetes Service. It defaults - to https when Kubernetes Service port is 443, http otherwise. - type: string - serversTransport: - description: ServersTransport defines the name of ServersTransport - resource to use. It allows to configure the transport - between Traefik and your servers. Can only be used on - a Kubernetes Service. - type: string - sticky: - description: 'Sticky defines the sticky sessions configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/services/#sticky-sessions' - properties: - cookie: - description: Cookie defines the sticky cookie configuration. - properties: - httpOnly: - description: HTTPOnly defines whether the cookie - can be accessed by client-side APIs, such as - JavaScript. - type: boolean - name: - description: Name defines the Cookie name. - type: string - sameSite: - description: 'SameSite defines the same site policy. - More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' - type: string - secure: - description: Secure defines whether the cookie - can only be transmitted over an encrypted connection - (i.e. HTTPS). - type: boolean - type: object - type: object - strategy: - description: Strategy defines the load balancing strategy - between the servers. RoundRobin is the only supported - value at the moment. - type: string - weight: - description: Weight defines the weight and should only - be specified when Name references a TraefikService object - (and to be precise, one that embeds a Weighted Round - Robin). - type: integer - required: - - name - type: object - type: array - required: - - kind - - match - type: object - type: array - tls: - description: 'TLS defines the TLS configuration. More info: https://doc.traefik.io/traefik/v2.9/routing/routers/#tls' - properties: - certResolver: - description: 'CertResolver defines the name of the certificate - resolver to use. Cert resolvers have to be configured in the - static configuration. More info: https://doc.traefik.io/traefik/v2.9/https/acme/#certificate-resolvers' - type: string - domains: - description: 'Domains defines the list of domains that will be - used to issue certificates. More info: https://doc.traefik.io/traefik/v2.9/routing/routers/#domains' - items: - description: Domain holds a domain name with SANs. - properties: - main: - description: Main defines the main domain name. - type: string - sans: - description: SANs defines the subject alternative domain - names. - items: - type: string - type: array - type: object - type: array - options: - description: 'Options defines the reference to a TLSOption, that - specifies the parameters of the TLS connection. If not defined, - the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.9/https/tls/#tls-options' - properties: - name: - description: 'Name defines the name of the referenced TLSOption. - More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#kind-tlsoption' - type: string - namespace: - description: 'Namespace defines the namespace of the referenced - TLSOption. More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#kind-tlsoption' - type: string - required: - - name - type: object - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - store: - description: Store defines the reference to the TLSStore, that - will be used to store certificates. Please note that only `default` - TLSStore can be used. - properties: - name: - description: 'Name defines the name of the referenced TLSStore. - More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#kind-tlsstore' - type: string - namespace: - description: 'Namespace defines the namespace of the referenced - TLSStore. More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#kind-tlsstore' - type: string - required: - - name - type: object - type: object - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file diff --git a/charts/traefik/crds/ingressroutetcp.yaml b/charts/traefik/crds/ingressroutetcp.yaml deleted file mode 100644 index 37da83b..0000000 --- a/charts/traefik/crds/ingressroutetcp.yaml +++ /dev/null @@ -1,211 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: ingressroutetcps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRouteTCP - listKind: IngressRouteTCPList - plural: ingressroutetcps - singular: ingressroutetcp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP. - properties: - entryPoints: - description: 'EntryPoints defines the list of entry point names to - bind to. Entry points have to be configured in the static configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/entrypoints/ - Default: all.' - items: - type: string - type: array - routes: - description: Routes defines the list of routes. - items: - description: RouteTCP holds the TCP route configuration. - properties: - match: - description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.9/routing/routers/#rule_1' - type: string - middlewares: - description: Middlewares defines the list of references to MiddlewareTCP - resources. - items: - description: ObjectReference is a generic reference to a Traefik - resource. - properties: - name: - description: Name defines the name of the referenced Traefik - resource. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Traefik resource. - type: string - required: - - name - type: object - type: array - priority: - description: 'Priority defines the router''s priority. More - info: https://doc.traefik.io/traefik/v2.9/routing/routers/#priority_1' - type: integer - services: - description: Services defines the list of TCP services. - items: - description: ServiceTCP defines an upstream TCP service to - proxy traffic to. - properties: - name: - description: Name defines the name of the referenced Kubernetes - Service. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service. - type: string - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. - This can be a reference to a named port. - x-kubernetes-int-or-string: true - proxyProtocol: - description: 'ProxyProtocol defines the PROXY protocol - configuration. More info: https://doc.traefik.io/traefik/v2.9/routing/services/#proxy-protocol' - properties: - version: - description: Version defines the PROXY Protocol version - to use. - type: integer - type: object - terminationDelay: - description: TerminationDelay defines the deadline that - the proxy sets, after one of its connected peers indicates - it has closed the writing capability of its connection, - to close the reading capability as well, hence fully - terminating the connection. It is a duration in milliseconds, - defaulting to 100. A negative value means an infinite - deadline (i.e. the reading capability is never closed). - type: integer - weight: - description: Weight defines the weight used when balancing - requests between multiple Kubernetes Service. - type: integer - required: - - name - - port - type: object - type: array - required: - - match - type: object - type: array - tls: - description: 'TLS defines the TLS configuration on a layer 4 / TCP - Route. More info: https://doc.traefik.io/traefik/v2.9/routing/routers/#tls_1' - properties: - certResolver: - description: 'CertResolver defines the name of the certificate - resolver to use. Cert resolvers have to be configured in the - static configuration. More info: https://doc.traefik.io/traefik/v2.9/https/acme/#certificate-resolvers' - type: string - domains: - description: 'Domains defines the list of domains that will be - used to issue certificates. More info: https://doc.traefik.io/traefik/v2.9/routing/routers/#domains' - items: - description: Domain holds a domain name with SANs. - properties: - main: - description: Main defines the main domain name. - type: string - sans: - description: SANs defines the subject alternative domain - names. - items: - type: string - type: array - type: object - type: array - options: - description: 'Options defines the reference to a TLSOption, that - specifies the parameters of the TLS connection. If not defined, - the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.9/https/tls/#tls-options' - properties: - name: - description: Name defines the name of the referenced Traefik - resource. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Traefik resource. - type: string - required: - - name - type: object - passthrough: - description: Passthrough defines whether a TLS router will terminate - the TLS connection. - type: boolean - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - store: - description: Store defines the reference to the TLSStore, that - will be used to store certificates. Please note that only `default` - TLSStore can be used. - properties: - name: - description: Name defines the name of the referenced Traefik - resource. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Traefik resource. - type: string - required: - - name - type: object - type: object - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/ingressrouteudp.yaml b/charts/traefik/crds/ingressrouteudp.yaml deleted file mode 100644 index 2ba4dad..0000000 --- a/charts/traefik/crds/ingressrouteudp.yaml +++ /dev/null @@ -1,98 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: ingressrouteudps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRouteUDP - listKind: IngressRouteUDPList - plural: ingressrouteudps - singular: ingressrouteudp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP. - properties: - entryPoints: - description: 'EntryPoints defines the list of entry point names to - bind to. Entry points have to be configured in the static configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/entrypoints/ - Default: all.' - items: - type: string - type: array - routes: - description: Routes defines the list of routes. - items: - description: RouteUDP holds the UDP route configuration. - properties: - services: - description: Services defines the list of UDP services. - items: - description: ServiceUDP defines an upstream UDP service to - proxy traffic to. - properties: - name: - description: Name defines the name of the referenced Kubernetes - Service. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service. - type: string - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. - This can be a reference to a named port. - x-kubernetes-int-or-string: true - weight: - description: Weight defines the weight used when balancing - requests between multiple Kubernetes Service. - type: integer - required: - - name - - port - type: object - type: array - type: object - type: array - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/middlewares.yaml b/charts/traefik/crds/middlewares.yaml deleted file mode 100644 index 26cb51d..0000000 --- a/charts/traefik/crds/middlewares.yaml +++ /dev/null @@ -1,917 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: middlewares.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: Middleware - listKind: MiddlewareList - plural: middlewares - singular: middleware - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: 'Middleware is the CRD implementation of a Traefik Middleware. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/overview/' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MiddlewareSpec defines the desired state of a Middleware. - properties: - addPrefix: - description: 'AddPrefix holds the add prefix middleware configuration. - This middleware updates the path of a request before forwarding - it. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/addprefix/' - properties: - prefix: - description: Prefix is the string to add before the current path - in the requested URL. It should include a leading slash (/). - type: string - type: object - basicAuth: - description: 'BasicAuth holds the basic auth middleware configuration. - This middleware restricts access to your services to known users. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/basicauth/' - properties: - headerField: - description: 'HeaderField defines a header field to store the - authenticated user. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/basicauth/#headerfield' - type: string - realm: - description: 'Realm allows the protected resources on a server - to be partitioned into a set of protection spaces, each with - its own authentication scheme. Default: traefik.' - type: string - removeHeader: - description: 'RemoveHeader sets the removeHeader option to true - to remove the authorization header before forwarding the request - to your service. Default: false.' - type: boolean - secret: - description: Secret is the name of the referenced Kubernetes Secret - containing user credentials. - type: string - type: object - buffering: - description: 'Buffering holds the buffering middleware configuration. - This middleware retries or limits the size of requests that can - be forwarded to backends. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/buffering/#maxrequestbodybytes' - properties: - maxRequestBodyBytes: - description: 'MaxRequestBodyBytes defines the maximum allowed - body size for the request (in bytes). If the request exceeds - the allowed size, it is not forwarded to the service, and the - client gets a 413 (Request Entity Too Large) response. Default: - 0 (no maximum).' - format: int64 - type: integer - maxResponseBodyBytes: - description: 'MaxResponseBodyBytes defines the maximum allowed - response size from the service (in bytes). If the response exceeds - the allowed size, it is not forwarded to the client. The client - gets a 500 (Internal Server Error) response instead. Default: - 0 (no maximum).' - format: int64 - type: integer - memRequestBodyBytes: - description: 'MemRequestBodyBytes defines the threshold (in bytes) - from which the request will be buffered on disk instead of in - memory. Default: 1048576 (1Mi).' - format: int64 - type: integer - memResponseBodyBytes: - description: 'MemResponseBodyBytes defines the threshold (in bytes) - from which the response will be buffered on disk instead of - in memory. Default: 1048576 (1Mi).' - format: int64 - type: integer - retryExpression: - description: 'RetryExpression defines the retry conditions. It - is a logical combination of functions with operators AND (&&) - and OR (||). More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/buffering/#retryexpression' - type: string - type: object - chain: - description: 'Chain holds the configuration of the chain middleware. - This middleware enables to define reusable combinations of other - pieces of middleware. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/chain/' - properties: - middlewares: - description: Middlewares is the list of MiddlewareRef which composes - the chain. - items: - description: MiddlewareRef is a reference to a Middleware resource. - properties: - name: - description: Name defines the name of the referenced Middleware - resource. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Middleware resource. - type: string - required: - - name - type: object - type: array - type: object - circuitBreaker: - description: CircuitBreaker holds the circuit breaker configuration. - properties: - checkPeriod: - anyOf: - - type: integer - - type: string - description: CheckPeriod is the interval between successive checks - of the circuit breaker condition (when in standby state). - x-kubernetes-int-or-string: true - expression: - description: Expression is the condition that triggers the tripped - state. - type: string - fallbackDuration: - anyOf: - - type: integer - - type: string - description: FallbackDuration is the duration for which the circuit - breaker will wait before trying to recover (from a tripped state). - x-kubernetes-int-or-string: true - recoveryDuration: - anyOf: - - type: integer - - type: string - description: RecoveryDuration is the duration for which the circuit - breaker will try to recover (as soon as it is in recovering - state). - x-kubernetes-int-or-string: true - type: object - compress: - description: 'Compress holds the compress middleware configuration. - This middleware compresses responses before sending them to the - client, using gzip compression. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/compress/' - properties: - excludedContentTypes: - description: ExcludedContentTypes defines the list of content - types to compare the Content-Type header of the incoming requests - and responses before compressing. - items: - type: string - type: array - minResponseBodyBytes: - description: 'MinResponseBodyBytes defines the minimum amount - of bytes a response body must have to be compressed. Default: - 1024.' - type: integer - type: object - contentType: - description: ContentType holds the content-type middleware configuration. - This middleware exists to enable the correct behavior until at least - the default one can be changed in a future version. - properties: - autoDetect: - description: AutoDetect specifies whether to let the `Content-Type` - header, if it has not been set by the backend, be automatically - set to a value derived from the contents of the response. As - a proxy, the default behavior should be to leave the header - alone, regardless of what the backend did with it. However, - the historic default was to always auto-detect and set the header - if it was nil, and it is going to be kept that way in order - to support users currently relying on it. - type: boolean - type: object - digestAuth: - description: 'DigestAuth holds the digest auth middleware configuration. - This middleware restricts access to your services to known users. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/digestauth/' - properties: - headerField: - description: 'HeaderField defines a header field to store the - authenticated user. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/basicauth/#headerfield' - type: string - realm: - description: 'Realm allows the protected resources on a server - to be partitioned into a set of protection spaces, each with - its own authentication scheme. Default: traefik.' - type: string - removeHeader: - description: RemoveHeader defines whether to remove the authorization - header before forwarding the request to the backend. - type: boolean - secret: - description: Secret is the name of the referenced Kubernetes Secret - containing user credentials. - type: string - type: object - errors: - description: 'ErrorPage holds the custom error middleware configuration. - This middleware returns a custom page in lieu of the default, according - to configured ranges of HTTP Status codes. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/errorpages/' - properties: - query: - description: Query defines the URL for the error page (hosted - by service). The {status} variable can be used in order to insert - the status code in the URL. - type: string - service: - description: 'Service defines the reference to a Kubernetes Service - that will serve the error page. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/errorpages/#service' - properties: - kind: - description: Kind defines the kind of the Service. - enum: - - Service - - TraefikService - type: string - name: - description: Name defines the name of the referenced Kubernetes - Service or TraefikService. The differentiation between the - two is specified in the Kind field. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service or TraefikService. - type: string - passHostHeader: - description: PassHostHeader defines whether the client Host - header is forwarded to the upstream Kubernetes Service. - By default, passHostHeader is true. - type: boolean - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. - This can be a reference to a named port. - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding defines how Traefik forwards - the response from the upstream Kubernetes Service to the - client. - properties: - flushInterval: - description: 'FlushInterval defines the interval, in milliseconds, - in between flushes to the client while copying the response - body. A negative value means to flush immediately after - each write to the client. This configuration is ignored - when ReverseProxy recognizes a response as a streaming - response; for such responses, writes are flushed to - the client immediately. Default: 100ms' - type: string - type: object - scheme: - description: Scheme defines the scheme to use for the request - to the upstream Kubernetes Service. It defaults to https - when Kubernetes Service port is 443, http otherwise. - type: string - serversTransport: - description: ServersTransport defines the name of ServersTransport - resource to use. It allows to configure the transport between - Traefik and your servers. Can only be used on a Kubernetes - Service. - type: string - sticky: - description: 'Sticky defines the sticky sessions configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/services/#sticky-sessions' - properties: - cookie: - description: Cookie defines the sticky cookie configuration. - properties: - httpOnly: - description: HTTPOnly defines whether the cookie can - be accessed by client-side APIs, such as JavaScript. - type: boolean - name: - description: Name defines the Cookie name. - type: string - sameSite: - description: 'SameSite defines the same site policy. - More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' - type: string - secure: - description: Secure defines whether the cookie can - only be transmitted over an encrypted connection - (i.e. HTTPS). - type: boolean - type: object - type: object - strategy: - description: Strategy defines the load balancing strategy - between the servers. RoundRobin is the only supported value - at the moment. - type: string - weight: - description: Weight defines the weight and should only be - specified when Name references a TraefikService object (and - to be precise, one that embeds a Weighted Round Robin). - type: integer - required: - - name - type: object - status: - description: Status defines which status or range of statuses - should result in an error page. It can be either a status code - as a number (500), as multiple comma-separated numbers (500,502), - as ranges by separating two codes with a dash (500-599), or - a combination of the two (404,418,500-599). - items: - type: string - type: array - type: object - forwardAuth: - description: 'ForwardAuth holds the forward auth middleware configuration. - This middleware delegates the request authentication to a Service. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/forwardauth/' - properties: - address: - description: Address defines the authentication server address. - type: string - authRequestHeaders: - description: AuthRequestHeaders defines the list of the headers - to copy from the request to the authentication server. If not - set or empty then all request headers are passed. - items: - type: string - type: array - authResponseHeaders: - description: AuthResponseHeaders defines the list of headers to - copy from the authentication server response and set on forwarded - request, replacing any existing conflicting headers. - items: - type: string - type: array - authResponseHeadersRegex: - description: 'AuthResponseHeadersRegex defines the regex to match - headers to copy from the authentication server response and - set on forwarded request, after stripping all headers that match - the regex. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/forwardauth/#authresponseheadersregex' - type: string - tls: - description: TLS defines the configuration used to secure the - connection to the authentication server. - properties: - caOptional: - type: boolean - caSecret: - description: CASecret is the name of the referenced Kubernetes - Secret containing the CA to validate the server certificate. - The CA certificate is extracted from key `tls.ca` or `ca.crt`. - type: string - certSecret: - description: CertSecret is the name of the referenced Kubernetes - Secret containing the client certificate. The client certificate - is extracted from the keys `tls.crt` and `tls.key`. - type: string - insecureSkipVerify: - description: InsecureSkipVerify defines whether the server - certificates should be validated. - type: boolean - type: object - trustForwardHeader: - description: 'TrustForwardHeader defines whether to trust (ie: - forward) all X-Forwarded-* headers.' - type: boolean - type: object - headers: - description: 'Headers holds the headers middleware configuration. - This middleware manages the requests and responses headers. More - info: https://doc.traefik.io/traefik/v2.9/middlewares/http/headers/#customrequestheaders' - properties: - accessControlAllowCredentials: - description: AccessControlAllowCredentials defines whether the - request can include user credentials. - type: boolean - accessControlAllowHeaders: - description: AccessControlAllowHeaders defines the Access-Control-Request-Headers - values sent in preflight response. - items: - type: string - type: array - accessControlAllowMethods: - description: AccessControlAllowMethods defines the Access-Control-Request-Method - values sent in preflight response. - items: - type: string - type: array - accessControlAllowOriginList: - description: AccessControlAllowOriginList is a list of allowable - origins. Can also be a wildcard origin "*". - items: - type: string - type: array - accessControlAllowOriginListRegex: - description: AccessControlAllowOriginListRegex is a list of allowable - origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). - items: - type: string - type: array - accessControlExposeHeaders: - description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers - values sent in preflight response. - items: - type: string - type: array - accessControlMaxAge: - description: AccessControlMaxAge defines the time that a preflight - request may be cached. - format: int64 - type: integer - addVaryHeader: - description: AddVaryHeader defines whether the Vary header is - automatically added/updated when the AccessControlAllowOriginList - is set. - type: boolean - allowedHosts: - description: AllowedHosts defines the fully qualified list of - allowed domain names. - items: - type: string - type: array - browserXssFilter: - description: BrowserXSSFilter defines whether to add the X-XSS-Protection - header with the value 1; mode=block. - type: boolean - contentSecurityPolicy: - description: ContentSecurityPolicy defines the Content-Security-Policy - header value. - type: string - contentTypeNosniff: - description: ContentTypeNosniff defines whether to add the X-Content-Type-Options - header with the nosniff value. - type: boolean - customBrowserXSSValue: - description: CustomBrowserXSSValue defines the X-XSS-Protection - header value. This overrides the BrowserXssFilter option. - type: string - customFrameOptionsValue: - description: CustomFrameOptionsValue defines the X-Frame-Options - header value. This overrides the FrameDeny option. - type: string - customRequestHeaders: - additionalProperties: - type: string - description: CustomRequestHeaders defines the header names and - values to apply to the request. - type: object - customResponseHeaders: - additionalProperties: - type: string - description: CustomResponseHeaders defines the header names and - values to apply to the response. - type: object - featurePolicy: - description: 'Deprecated: use PermissionsPolicy instead.' - type: string - forceSTSHeader: - description: ForceSTSHeader defines whether to add the STS header - even when the connection is HTTP. - type: boolean - frameDeny: - description: FrameDeny defines whether to add the X-Frame-Options - header with the DENY value. - type: boolean - hostsProxyHeaders: - description: HostsProxyHeaders defines the header keys that may - hold a proxied hostname value for the request. - items: - type: string - type: array - isDevelopment: - description: IsDevelopment defines whether to mitigate the unwanted - effects of the AllowedHosts, SSL, and STS options when developing. - Usually testing takes place using HTTP, not HTTPS, and on localhost, - not your production domain. If you would like your development - environment to mimic production with complete Host blocking, - SSL redirects, and STS headers, leave this as false. - type: boolean - permissionsPolicy: - description: PermissionsPolicy defines the Permissions-Policy - header value. This allows sites to control browser features. - type: string - publicKey: - description: PublicKey is the public key that implements HPKP - to prevent MITM attacks with forged certificates. - type: string - referrerPolicy: - description: ReferrerPolicy defines the Referrer-Policy header - value. This allows sites to control whether browsers forward - the Referer header to other sites. - type: string - sslForceHost: - description: 'Deprecated: use RedirectRegex instead.' - type: boolean - sslHost: - description: 'Deprecated: use RedirectRegex instead.' - type: string - sslProxyHeaders: - additionalProperties: - type: string - description: 'SSLProxyHeaders defines the header keys with associated - values that would indicate a valid HTTPS request. It can be - useful when using other proxies (example: "X-Forwarded-Proto": - "https").' - type: object - sslRedirect: - description: 'Deprecated: use EntryPoint redirection or RedirectScheme - instead.' - type: boolean - sslTemporaryRedirect: - description: 'Deprecated: use EntryPoint redirection or RedirectScheme - instead.' - type: boolean - stsIncludeSubdomains: - description: STSIncludeSubdomains defines whether the includeSubDomains - directive is appended to the Strict-Transport-Security header. - type: boolean - stsPreload: - description: STSPreload defines whether the preload flag is appended - to the Strict-Transport-Security header. - type: boolean - stsSeconds: - description: STSSeconds defines the max-age of the Strict-Transport-Security - header. If set to 0, the header is not set. - format: int64 - type: integer - type: object - inFlightReq: - description: 'InFlightReq holds the in-flight request middleware configuration. - This middleware limits the number of requests being processed and - served concurrently. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/inflightreq/' - properties: - amount: - description: Amount defines the maximum amount of allowed simultaneous - in-flight request. The middleware responds with HTTP 429 Too - Many Requests if there are already amount requests in progress - (based on the same sourceCriterion strategy). - format: int64 - type: integer - sourceCriterion: - description: 'SourceCriterion defines what criterion is used to - group requests as originating from a common source. If several - strategies are defined at the same time, an error will be raised. - If none are set, the default is to use the requestHost. More - info: https://doc.traefik.io/traefik/v2.9/middlewares/http/inflightreq/#sourcecriterion' - properties: - ipStrategy: - description: 'IPStrategy holds the IP strategy configuration - used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/ipwhitelist/#ipstrategy' - properties: - depth: - description: Depth tells Traefik to use the X-Forwarded-For - header and take the IP located at the depth position - (starting from the right). - type: integer - excludedIPs: - description: ExcludedIPs configures Traefik to scan the - X-Forwarded-For header and select the first IP not in - the list. - items: - type: string - type: array - type: object - requestHeaderName: - description: RequestHeaderName defines the name of the header - used to group incoming requests. - type: string - requestHost: - description: RequestHost defines whether to consider the request - Host as the source. - type: boolean - type: object - type: object - ipWhiteList: - description: 'IPWhiteList holds the IP whitelist middleware configuration. - This middleware accepts / refuses requests based on the client IP. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/ipwhitelist/' - properties: - ipStrategy: - description: 'IPStrategy holds the IP strategy configuration used - by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/ipwhitelist/#ipstrategy' - properties: - depth: - description: Depth tells Traefik to use the X-Forwarded-For - header and take the IP located at the depth position (starting - from the right). - type: integer - excludedIPs: - description: ExcludedIPs configures Traefik to scan the X-Forwarded-For - header and select the first IP not in the list. - items: - type: string - type: array - type: object - sourceRange: - description: SourceRange defines the set of allowed IPs (or ranges - of allowed IPs by using CIDR notation). - items: - type: string - type: array - type: object - passTLSClientCert: - description: 'PassTLSClientCert holds the pass TLS client cert middleware - configuration. This middleware adds the selected data from the passed - client TLS certificate to a header. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/passtlsclientcert/' - properties: - info: - description: Info selects the specific client certificate details - you want to add to the X-Forwarded-Tls-Client-Cert-Info header. - properties: - issuer: - description: Issuer defines the client certificate issuer - details to add to the X-Forwarded-Tls-Client-Cert-Info header. - properties: - commonName: - description: CommonName defines whether to add the organizationalUnit - information into the issuer. - type: boolean - country: - description: Country defines whether to add the country - information into the issuer. - type: boolean - domainComponent: - description: DomainComponent defines whether to add the - domainComponent information into the issuer. - type: boolean - locality: - description: Locality defines whether to add the locality - information into the issuer. - type: boolean - organization: - description: Organization defines whether to add the organization - information into the issuer. - type: boolean - province: - description: Province defines whether to add the province - information into the issuer. - type: boolean - serialNumber: - description: SerialNumber defines whether to add the serialNumber - information into the issuer. - type: boolean - type: object - notAfter: - description: NotAfter defines whether to add the Not After - information from the Validity part. - type: boolean - notBefore: - description: NotBefore defines whether to add the Not Before - information from the Validity part. - type: boolean - sans: - description: Sans defines whether to add the Subject Alternative - Name information from the Subject Alternative Name part. - type: boolean - serialNumber: - description: SerialNumber defines whether to add the client - serialNumber information. - type: boolean - subject: - description: Subject defines the client certificate subject - details to add to the X-Forwarded-Tls-Client-Cert-Info header. - properties: - commonName: - description: CommonName defines whether to add the organizationalUnit - information into the subject. - type: boolean - country: - description: Country defines whether to add the country - information into the subject. - type: boolean - domainComponent: - description: DomainComponent defines whether to add the - domainComponent information into the subject. - type: boolean - locality: - description: Locality defines whether to add the locality - information into the subject. - type: boolean - organization: - description: Organization defines whether to add the organization - information into the subject. - type: boolean - organizationalUnit: - description: OrganizationalUnit defines whether to add - the organizationalUnit information into the subject. - type: boolean - province: - description: Province defines whether to add the province - information into the subject. - type: boolean - serialNumber: - description: SerialNumber defines whether to add the serialNumber - information into the subject. - type: boolean - type: object - type: object - pem: - description: PEM sets the X-Forwarded-Tls-Client-Cert header with - the escaped certificate. - type: boolean - type: object - plugin: - additionalProperties: - x-kubernetes-preserve-unknown-fields: true - description: 'Plugin defines the middleware plugin configuration. - More info: https://doc.traefik.io/traefik/plugins/' - type: object - rateLimit: - description: 'RateLimit holds the rate limit configuration. This middleware - ensures that services will receive a fair amount of requests, and - allows one to define what fair is. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/ratelimit/' - properties: - average: - description: Average is the maximum rate, by default in requests/s, - allowed for the given source. It defaults to 0, which means - no rate limiting. The rate is actually defined by dividing Average - by Period. So for a rate below 1req/s, one needs to define a - Period larger than a second. - format: int64 - type: integer - burst: - description: Burst is the maximum number of requests allowed to - arrive in the same arbitrarily small period of time. It defaults - to 1. - format: int64 - type: integer - period: - anyOf: - - type: integer - - type: string - description: 'Period, in combination with Average, defines the - actual maximum rate, such as: r = Average / Period. It defaults - to a second.' - x-kubernetes-int-or-string: true - sourceCriterion: - description: SourceCriterion defines what criterion is used to - group requests as originating from a common source. If several - strategies are defined at the same time, an error will be raised. - If none are set, the default is to use the request's remote - address field (as an ipStrategy). - properties: - ipStrategy: - description: 'IPStrategy holds the IP strategy configuration - used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/ipwhitelist/#ipstrategy' - properties: - depth: - description: Depth tells Traefik to use the X-Forwarded-For - header and take the IP located at the depth position - (starting from the right). - type: integer - excludedIPs: - description: ExcludedIPs configures Traefik to scan the - X-Forwarded-For header and select the first IP not in - the list. - items: - type: string - type: array - type: object - requestHeaderName: - description: RequestHeaderName defines the name of the header - used to group incoming requests. - type: string - requestHost: - description: RequestHost defines whether to consider the request - Host as the source. - type: boolean - type: object - type: object - redirectRegex: - description: 'RedirectRegex holds the redirect regex middleware configuration. - This middleware redirects a request using regex matching and replacement. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/redirectregex/#regex' - properties: - permanent: - description: Permanent defines whether the redirection is permanent - (301). - type: boolean - regex: - description: Regex defines the regex used to match and capture - elements from the request URL. - type: string - replacement: - description: Replacement defines how to modify the URL to have - the new target URL. - type: string - type: object - redirectScheme: - description: 'RedirectScheme holds the redirect scheme middleware - configuration. This middleware redirects requests from a scheme/port - to another. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/redirectscheme/' - properties: - permanent: - description: Permanent defines whether the redirection is permanent - (301). - type: boolean - port: - description: Port defines the port of the new URL. - type: string - scheme: - description: Scheme defines the scheme of the new URL. - type: string - type: object - replacePath: - description: 'ReplacePath holds the replace path middleware configuration. - This middleware replaces the path of the request URL and store the - original path in an X-Replaced-Path header. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/replacepath/' - properties: - path: - description: Path defines the path to use as replacement in the - request URL. - type: string - type: object - replacePathRegex: - description: 'ReplacePathRegex holds the replace path regex middleware - configuration. This middleware replaces the path of a URL using - regex matching and replacement. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/replacepathregex/' - properties: - regex: - description: Regex defines the regular expression used to match - and capture the path from the request URL. - type: string - replacement: - description: Replacement defines the replacement path format, - which can include captured variables. - type: string - type: object - retry: - description: 'Retry holds the retry middleware configuration. This - middleware reissues requests a given number of times to a backend - server if that server does not reply. As soon as the server answers, - the middleware stops retrying, regardless of the response status. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/retry/' - properties: - attempts: - description: Attempts defines how many times the request should - be retried. - type: integer - initialInterval: - anyOf: - - type: integer - - type: string - description: InitialInterval defines the first wait time in the - exponential backoff series. The maximum interval is calculated - as twice the initialInterval. If unspecified, requests will - be retried immediately. The value of initialInterval should - be provided in seconds or as a valid duration format, see https://pkg.go.dev/time#ParseDuration. - x-kubernetes-int-or-string: true - type: object - stripPrefix: - description: 'StripPrefix holds the strip prefix middleware configuration. - This middleware removes the specified prefixes from the URL path. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/stripprefix/' - properties: - forceSlash: - description: 'ForceSlash ensures that the resulting stripped path - is not the empty string, by replacing it with / when necessary. - Default: true.' - type: boolean - prefixes: - description: Prefixes defines the prefixes to strip from the request - URL. - items: - type: string - type: array - type: object - stripPrefixRegex: - description: 'StripPrefixRegex holds the strip prefix regex middleware - configuration. This middleware removes the matching prefixes from - the URL path. More info: https://doc.traefik.io/traefik/v2.9/middlewares/http/stripprefixregex/' - properties: - regex: - description: Regex defines the regular expression to match the - path prefix from the request URL. - items: - type: string - type: array - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/middlewarestcp.yaml b/charts/traefik/crds/middlewarestcp.yaml deleted file mode 100644 index dffdc72..0000000 --- a/charts/traefik/crds/middlewarestcp.yaml +++ /dev/null @@ -1,85 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: middlewaretcps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: MiddlewareTCP - listKind: MiddlewareTCPList - plural: middlewaretcps - singular: middlewaretcp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: 'MiddlewareTCP is the CRD implementation of a Traefik TCP middleware. - More info: https://doc.traefik.io/traefik/v2.9/middlewares/overview/' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP. - properties: - inFlightConn: - description: InFlightConn defines the InFlightConn middleware configuration. - properties: - amount: - description: Amount defines the maximum amount of allowed simultaneous - connections. The middleware closes the connection if there are - already amount connections opened. - format: int64 - type: integer - type: object - ipAllowList: - description: |- - IPAllowList defines the IPAllowList middleware configuration. - This middleware accepts/refuses connections based on the client IP. - More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ - properties: - sourceRange: - description: SourceRange defines the allowed IPs (or ranges of - allowed IPs by using CIDR notation). - items: - type: string - type: array - type: object - ipWhiteList: - description: IPWhiteList defines the IPWhiteList middleware configuration. - properties: - sourceRange: - description: SourceRange defines the allowed IPs (or ranges of - allowed IPs by using CIDR notation). - items: - type: string - type: array - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/serverstransports.yaml b/charts/traefik/crds/serverstransports.yaml deleted file mode 100644 index afc0384..0000000 --- a/charts/traefik/crds/serverstransports.yaml +++ /dev/null @@ -1,128 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: serverstransports.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: ServersTransport - listKind: ServersTransportList - plural: serverstransports - singular: serverstransport - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: 'ServersTransport is the CRD implementation of a ServersTransport. - If no serversTransport is specified, the default@internal will be used. - The default@internal serversTransport is created from the static configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/services/#serverstransport_1' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServersTransportSpec defines the desired state of a ServersTransport. - properties: - certificatesSecrets: - description: CertificatesSecrets defines a list of secret storing - client certificates for mTLS. - items: - type: string - type: array - disableHTTP2: - description: DisableHTTP2 disables HTTP/2 for connections with backend - servers. - type: boolean - forwardingTimeouts: - description: ForwardingTimeouts defines the timeouts for requests - forwarded to the backend servers. - properties: - dialTimeout: - anyOf: - - type: integer - - type: string - description: DialTimeout is the amount of time to wait until a - connection to a backend server can be established. - x-kubernetes-int-or-string: true - idleConnTimeout: - anyOf: - - type: integer - - type: string - description: IdleConnTimeout is the maximum period for which an - idle HTTP keep-alive connection will remain open before closing - itself. - x-kubernetes-int-or-string: true - pingTimeout: - anyOf: - - type: integer - - type: string - description: PingTimeout is the timeout after which the HTTP/2 - connection will be closed if a response to ping is not received. - x-kubernetes-int-or-string: true - readIdleTimeout: - anyOf: - - type: integer - - type: string - description: ReadIdleTimeout is the timeout after which a health - check using ping frame will be carried out if no frame is received - on the HTTP/2 connection. - x-kubernetes-int-or-string: true - responseHeaderTimeout: - anyOf: - - type: integer - - type: string - description: ResponseHeaderTimeout is the amount of time to wait - for a server's response headers after fully writing the request - (including its body, if any). - x-kubernetes-int-or-string: true - type: object - insecureSkipVerify: - description: InsecureSkipVerify disables SSL certificate verification. - type: boolean - maxIdleConnsPerHost: - description: MaxIdleConnsPerHost controls the maximum idle (keep-alive) - to keep per-host. - type: integer - peerCertURI: - description: PeerCertURI defines the peer cert URI used to match against - SAN URI during the peer certificate verification. - type: string - rootCAsSecrets: - description: RootCAsSecrets defines a list of CA secret used to validate - self-signed certificate. - items: - type: string - type: array - serverName: - description: ServerName defines the server name used to contact the - server. - type: string - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/tlsoptions.yaml b/charts/traefik/crds/tlsoptions.yaml deleted file mode 100644 index 16ea460..0000000 --- a/charts/traefik/crds/tlsoptions.yaml +++ /dev/null @@ -1,113 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: tlsoptions.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TLSOption - listKind: TLSOptionList - plural: tlsoptions - singular: tlsoption - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: 'TLSOption is the CRD implementation of a Traefik TLS Option, - allowing to configure some parameters of the TLS connection. More info: - https://doc.traefik.io/traefik/v2.9/https/tls/#tls-options' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TLSOptionSpec defines the desired state of a TLSOption. - properties: - alpnProtocols: - description: 'ALPNProtocols defines the list of supported application - level protocols for the TLS handshake, in order of preference. More - info: https://doc.traefik.io/traefik/v2.9/https/tls/#alpn-protocols' - items: - type: string - type: array - cipherSuites: - description: 'CipherSuites defines the list of supported cipher suites - for TLS versions up to TLS 1.2. More info: https://doc.traefik.io/traefik/v2.9/https/tls/#cipher-suites' - items: - type: string - type: array - clientAuth: - description: ClientAuth defines the server's policy for TLS Client - Authentication. - properties: - clientAuthType: - description: ClientAuthType defines the client authentication - type to apply. - enum: - - NoClientCert - - RequestClientCert - - RequireAnyClientCert - - VerifyClientCertIfGiven - - RequireAndVerifyClientCert - type: string - secretNames: - description: SecretNames defines the names of the referenced Kubernetes - Secret storing certificate details. - items: - type: string - type: array - type: object - curvePreferences: - description: 'CurvePreferences defines the preferred elliptic curves - in a specific order. More info: https://doc.traefik.io/traefik/v2.9/https/tls/#curve-preferences' - items: - type: string - type: array - maxVersion: - description: 'MaxVersion defines the maximum TLS version that Traefik - will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, - VersionTLS13. Default: None.' - type: string - minVersion: - description: 'MinVersion defines the minimum TLS version that Traefik - will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, - VersionTLS13. Default: VersionTLS10.' - type: string - preferServerCipherSuites: - description: 'PreferServerCipherSuites defines whether the server - chooses a cipher suite among his own instead of among the client''s. - It is enabled automatically when minVersion or maxVersion is set. - Deprecated: https://github.com/golang/go/issues/45430' - type: boolean - sniStrict: - description: SniStrict defines whether Traefik allows connections - from clients connections that do not specify a server_name extension. - type: boolean - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/tlsstores.yaml b/charts/traefik/crds/tlsstores.yaml deleted file mode 100644 index f6dfc6c..0000000 --- a/charts/traefik/crds/tlsstores.yaml +++ /dev/null @@ -1,99 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: tlsstores.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TLSStore - listKind: TLSStoreList - plural: tlsstores - singular: tlsstore - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: 'TLSStore is the CRD implementation of a Traefik TLS Store. For - the time being, only the TLSStore named default is supported. This means - that you cannot have two stores that are named default in different Kubernetes - namespaces. More info: https://doc.traefik.io/traefik/v2.9/https/tls/#certificates-stores' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TLSStoreSpec defines the desired state of a TLSStore. - properties: - certificates: - description: Certificates is a list of secret names, each secret holding - a key/certificate pair to add to the store. - items: - description: Certificate holds a secret name for the TLSStore resource. - properties: - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - required: - - secretName - type: object - type: array - defaultCertificate: - description: DefaultCertificate defines the default certificate configuration. - properties: - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - required: - - secretName - type: object - defaultGeneratedCert: - description: DefaultGeneratedCert defines the default generated certificate - configuration. - properties: - domain: - description: Domain is the domain definition for the DefaultCertificate. - properties: - main: - description: Main defines the main domain name. - type: string - sans: - description: SANs defines the subject alternative domain names. - items: - type: string - type: array - type: object - resolver: - description: Resolver is the name of the resolver that will be - used to issue the DefaultCertificate. - type: string - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/traefik/crds/traefik-v3.yaml b/charts/traefik/crds/traefik-v3.yaml new file mode 100644 index 0000000..cdfbc0c --- /dev/null +++ b/charts/traefik/crds/traefik-v3.yaml @@ -0,0 +1,3823 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: accesscontrolpolicies.hub.traefik.io +spec: + group: hub.traefik.io + names: + kind: AccessControlPolicy + listKind: AccessControlPolicyList + plural: accesscontrolpolicies + singular: accesscontrolpolicy + scope: Cluster + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: AccessControlPolicy defines an access control policy. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: AccessControlPolicySpec configures an access control policy. + properties: + apiKey: + description: AccessControlPolicyAPIKey configure an APIKey control + policy. + properties: + forwardHeaders: + additionalProperties: + type: string + description: ForwardHeaders instructs the middleware to forward + key metadata as header values upon successful authentication. + type: object + keySource: + description: KeySource defines how to extract API keys from requests. + properties: + cookie: + description: Cookie is the name of a cookie. + type: string + header: + description: Header is the name of a header. + type: string + headerAuthScheme: + description: |- + HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + If set, this scheme is removed from the token, and all requests not including it are dropped. + type: string + query: + description: Query is the name of a query parameter. + type: string + type: object + keys: + description: Keys define the set of authorized keys to access + a protected resource. + items: + description: AccessControlPolicyAPIKeyKey defines an API key. + properties: + id: + description: ID is the unique identifier of the key. + type: string + metadata: + additionalProperties: + type: string + description: Metadata holds arbitrary metadata for this + key, can be used by ForwardHeaders. + type: object + value: + description: Value is the SHAKE-256 hash (using 64 bytes) + of the API key. + type: string + required: + - id + - value + type: object + type: array + required: + - keySource + type: object + basicAuth: + description: AccessControlPolicyBasicAuth holds the HTTP basic authentication + configuration. + properties: + forwardUsernameHeader: + type: string + realm: + type: string + stripAuthorizationHeader: + type: boolean + users: + items: + type: string + type: array + type: object + jwt: + description: AccessControlPolicyJWT configures a JWT access control + policy. + properties: + claims: + type: string + forwardHeaders: + additionalProperties: + type: string + type: object + jwksFile: + type: string + jwksUrl: + type: string + publicKey: + type: string + signingSecret: + type: string + signingSecretBase64Encoded: + type: boolean + stripAuthorizationHeader: + type: boolean + tokenQueryKey: + type: string + type: object + oAuthIntro: + description: AccessControlOAuthIntro configures an OAuth 2.0 Token + Introspection access control policy. + properties: + claims: + type: string + clientConfig: + description: AccessControlOAuthIntroClientConfig configures the + OAuth 2.0 client for issuing token introspection requests. + properties: + headers: + additionalProperties: + type: string + description: Headers to set when sending requests to the Authorization + Server. + type: object + maxRetries: + default: 3 + description: MaxRetries defines the number of retries for + introspection requests. + type: integer + timeoutSeconds: + default: 5 + description: TimeoutSeconds configures the maximum amount + of seconds to wait before giving up on requests. + type: integer + tls: + description: TLS configures TLS communication with the Authorization + Server. + properties: + ca: + description: CA sets the CA bundle used to sign the Authorization + Server certificate. + type: string + insecureSkipVerify: + description: |- + InsecureSkipVerify skips the Authorization Server certificate validation. + For testing purposes only, do not use in production. + type: boolean + type: object + tokenTypeHint: + description: |- + TokenTypeHint is a hint to pass to the Authorization Server. + See https://tools.ietf.org/html/rfc7662#section-2.1 for more information. + type: string + url: + description: URL of the Authorization Server. + type: string + required: + - url + type: object + forwardHeaders: + additionalProperties: + type: string + type: object + tokenSource: + description: |- + TokenSource describes how to extract tokens from HTTP requests. + If multiple sources are set, the order is the following: header > query > cookie. + properties: + cookie: + description: Cookie is the name of a cookie. + type: string + header: + description: Header is the name of a header. + type: string + headerAuthScheme: + description: |- + HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + If set, this scheme is removed from the token, and all requests not including it are dropped. + type: string + query: + description: Query is the name of a query parameter. + type: string + type: object + required: + - clientConfig + - tokenSource + type: object + oidc: + description: AccessControlPolicyOIDC holds the OIDC authentication + configuration. + properties: + authParams: + additionalProperties: + type: string + type: object + claims: + type: string + clientId: + type: string + disableAuthRedirectionPaths: + items: + type: string + type: array + forwardHeaders: + additionalProperties: + type: string + type: object + issuer: + type: string + logoutUrl: + type: string + redirectUrl: + type: string + scopes: + items: + type: string + type: array + secret: + description: |- + SecretReference represents a Secret Reference. It has enough information to retrieve secret + in any namespace + properties: + name: + description: name is unique within a namespace to reference + a secret resource. + type: string + namespace: + description: namespace defines the space within which the + secret name must be unique. + type: string + type: object + x-kubernetes-map-type: atomic + session: + description: Session holds session configuration. + properties: + domain: + type: string + path: + type: string + refresh: + type: boolean + sameSite: + type: string + secure: + type: boolean + type: object + stateCookie: + description: StateCookie holds state cookie configuration. + properties: + domain: + type: string + path: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + oidcGoogle: + description: AccessControlPolicyOIDCGoogle holds the Google OIDC authentication + configuration. + properties: + authParams: + additionalProperties: + type: string + type: object + clientId: + type: string + emails: + description: Emails are the allowed emails to connect. + items: + type: string + minItems: 1 + type: array + forwardHeaders: + additionalProperties: + type: string + type: object + logoutUrl: + type: string + redirectUrl: + type: string + secret: + description: |- + SecretReference represents a Secret Reference. It has enough information to retrieve secret + in any namespace + properties: + name: + description: name is unique within a namespace to reference + a secret resource. + type: string + namespace: + description: namespace defines the space within which the + secret name must be unique. + type: string + type: object + x-kubernetes-map-type: atomic + session: + description: Session holds session configuration. + properties: + domain: + type: string + path: + type: string + refresh: + type: boolean + sameSite: + type: string + secure: + type: boolean + type: object + stateCookie: + description: StateCookie holds state cookie configuration. + properties: + domain: + type: string + path: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + type: object + status: + description: The current status of this access control policy. + properties: + specHash: + type: string + syncedAt: + format: date-time + type: string + version: + type: string + type: object + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: apiaccesses.hub.traefik.io +spec: + group: hub.traefik.io + names: + kind: APIAccess + listKind: APIAccessList + plural: apiaccesses + singular: apiaccess + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: APIAccess defines who can access to a set of APIs. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: The desired behavior of this APIAccess. + properties: + apiSelector: + description: |- + APISelector selects the APIs that will be accessible to the configured audience. + Multiple APIAccesses can select the same set of APIs. + This field is optional and follows standard label selector semantics. + An empty APISelector matches any API. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + apis: + description: |- + APIs defines a set of APIs that will be accessible to the configured audience. + Multiple APIAccesses can select the same APIs. + When combined with APISelector, this set of APIs is appended to the matching APIs. + items: + description: APIReference references an API. + properties: + name: + description: Name of the API. + maxLength: 253 + type: string + required: + - name + type: object + maxItems: 100 + type: array + x-kubernetes-validations: + - message: duplicated apis + rule: self.all(x, self.exists_one(y, x.name == y.name)) + everyone: + description: Everyone indicates that all users will have access to + the selected APIs. + type: boolean + groups: + description: Groups are the consumer groups that will gain access + to the selected APIs. + items: + type: string + type: array + operationFilter: + description: |- + OperationFilter specifies the allowed operations on APIs and APIVersions. + If not set, all operations are available. + An empty OperationFilter prohibits all operations. + properties: + include: + description: Include defines the names of OperationSets that will + be accessible. + items: + type: string + maxItems: 100 + type: array + type: object + type: object + x-kubernetes-validations: + - message: groups and everyone are mutually exclusive + rule: '(has(self.everyone) && has(self.groups)) ? !(self.everyone && + self.groups.size() > 0) : true' + status: + description: The current status of this APIAccess. + properties: + hash: + description: Hash is a hash representing the APIAccess. + type: string + syncedAt: + format: date-time + type: string + version: + type: string + type: object + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: apiportals.hub.traefik.io +spec: + group: hub.traefik.io + names: + kind: APIPortal + listKind: APIPortalList + plural: apiportals + singular: apiportal + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: APIPortal defines a developer portal for accessing the documentation + of APIs. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: The desired behavior of this APIPortal. + properties: + description: + description: Description of the APIPortal. + type: string + title: + description: Title is the public facing name of the APIPortal. + type: string + trustedUrls: + description: TrustedURLs are the urls that are trusted by the OAuth + 2.0 authorization server. + items: + type: string + maxItems: 1 + minItems: 1 + type: array + x-kubernetes-validations: + - message: must be a valid URLs + rule: self.all(x, isURL(x)) + ui: + description: UI holds the UI customization options. + properties: + logoUrl: + description: LogoURL is the public URL of the logo. + type: string + type: object + required: + - trustedUrls + type: object + status: + description: The current status of this APIPortal. + properties: + hash: + description: Hash is a hash representing the APIPortal. + type: string + oidc: + description: OIDC is the OIDC configuration for accessing the exposed + APIPortal WebUI. + properties: + clientId: + description: ClientID is the OIDC ClientID for accessing the exposed + APIPortal WebUI. + type: string + issuer: + description: Issuer is the OIDC issuer for accessing the exposed + APIPortal WebUI. + type: string + secretName: + description: SecretName is the name of the secret containing the + OIDC ClientSecret for accessing the exposed APIPortal WebUI. + type: string + type: object + syncedAt: + format: date-time + type: string + version: + type: string + type: object + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: apiratelimits.hub.traefik.io +spec: + group: hub.traefik.io + names: + kind: APIRateLimit + listKind: APIRateLimitList + plural: apiratelimits + singular: apiratelimit + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: APIRateLimit defines how group of consumers are rate limited + on a set of APIs. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: The desired behavior of this APIRateLimit. + properties: + apiSelector: + description: |- + APISelector selects the APIs that will be rate limited. + Multiple APIRateLimits can select the same set of APIs. + This field is optional and follows standard label selector semantics. + An empty APISelector matches any API. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + apis: + description: |- + APIs defines a set of APIs that will be rate limited. + Multiple APIRateLimits can select the same APIs. + When combined with APISelector, this set of APIs is appended to the matching APIs. + items: + description: APIReference references an API. + properties: + name: + description: Name of the API. + maxLength: 253 + type: string + required: + - name + type: object + maxItems: 100 + type: array + x-kubernetes-validations: + - message: duplicated apis + rule: self.all(x, self.exists_one(y, x.name == y.name)) + everyone: + description: |- + Everyone indicates that all users will, by default, be rate limited with this configuration. + If an APIRateLimit explicitly target a group, the default rate limit will be ignored. + type: boolean + groups: + description: |- + Groups are the consumer groups that will be rate limited. + Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies. + When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies. + items: + type: string + type: array + limit: + description: Limit is the maximum number of token in the bucket. + type: integer + x-kubernetes-validations: + - message: must be a positive number + rule: self >= 0 + period: + description: Period is the unit of time for the Limit. + format: duration + type: string + x-kubernetes-validations: + - message: must be between 1s and 1h + rule: self >= duration('1s') && self <= duration('1h') + strategy: + description: |- + Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances. + It can be, either "local" or "distributed". + enum: + - local + - distributed + type: string + required: + - limit + type: object + x-kubernetes-validations: + - message: groups and everyone are mutually exclusive + rule: '(has(self.everyone) && has(self.groups)) ? !(self.everyone && + self.groups.size() > 0) : true' + status: + description: The current status of this APIRateLimit. + properties: + hash: + description: Hash is a hash representing the APIRateLimit. + type: string + syncedAt: + format: date-time + type: string + version: + type: string + type: object + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: apis.hub.traefik.io +spec: + group: hub.traefik.io + names: + kind: API + listKind: APIList + plural: apis + singular: api + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + API defines an HTTP interface that is exposed to external clients. It specifies the supported versions + and provides instructions for accessing its documentation. Once instantiated, an API object is associated + with an Ingress, IngressRoute, or HTTPRoute resource, enabling the exposure of the described API to the outside world. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: APISpec describes the API. + properties: + openApiSpec: + description: OpenAPISpec defines the API contract as an OpenAPI specification. + properties: + operationSets: + description: OperationSets defines the sets of operations to be + referenced for granular filtering in APIAccesses. + items: + description: |- + OperationSet gives a name to a set of matching OpenAPI operations. + This set of operations can then be referenced for granular filtering in APIAccesses. + properties: + matchers: + description: Matchers defines a list of alternative rules + for matching OpenAPI operations. + items: + description: OperationMatcher defines criteria for matching + an OpenAPI operation. + minProperties: 1 + properties: + methods: + description: Methods specifies the HTTP methods to + be included for selection. + items: + type: string + maxItems: 10 + type: array + path: + description: Path specifies the exact path of the + operations to select. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: must start with a '/' + rule: self.startsWith('/') + - message: cannot contains '../' + rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' + pathPrefix: + description: PathPrefix specifies the path prefix + of the operations to select. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: must start with a '/' + rule: self.startsWith('/') + - message: cannot contains '../' + rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' + pathRegex: + description: PathRegex specifies a regular expression + pattern for matching operations based on their paths. + type: string + type: object + x-kubernetes-validations: + - message: path, pathPrefix and pathRegex are mutually + exclusive + rule: '[has(self.path), has(self.pathPrefix), has(self.pathRegex)].filter(x, + x).size() <= 1' + maxItems: 100 + minItems: 1 + type: array + name: + description: Name is the name of the OperationSet to reference + in APIAccesses. + maxLength: 253 + type: string + required: + - matchers + - name + type: object + maxItems: 100 + type: array + override: + description: Override holds data used to override OpenAPI specification. + properties: + servers: + items: + properties: + url: + type: string + x-kubernetes-validations: + - message: must be a valid URL + rule: isURL(self) + required: + - url + type: object + maxItems: 100 + minItems: 1 + type: array + required: + - servers + type: object + path: + description: |- + Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: must start with a '/' + rule: self.startsWith('/') + - message: cannot contains '../' + rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' + url: + description: |- + URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + type: string + x-kubernetes-validations: + - message: must be a valid URL + rule: isURL(self) + type: object + x-kubernetes-validations: + - message: path or url must be defined + rule: has(self.path) || has(self.url) + versions: + description: Versions are the different APIVersions available. + items: + description: APIVersionRef references an APIVersion. + properties: + name: + description: Name of the APIVersion. + maxLength: 253 + type: string + required: + - name + type: object + maxItems: 100 + minItems: 1 + type: array + type: object + status: + description: The current status of this API. + properties: + hash: + description: Hash is a hash representing the API. + type: string + syncedAt: + format: date-time + type: string + version: + type: string + type: object + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: apiversions.hub.traefik.io +spec: + group: hub.traefik.io + names: + kind: APIVersion + listKind: APIVersionList + plural: apiversions + singular: apiversion + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.title + name: Title + type: string + - jsonPath: .spec.release + name: Release + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: APIVersion defines a version of an API. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: The desired behavior of this APIVersion. + properties: + openApiSpec: + description: OpenAPISpec defines the API contract as an OpenAPI specification. + properties: + operationSets: + description: OperationSets defines the sets of operations to be + referenced for granular filtering in APIAccesses. + items: + description: |- + OperationSet gives a name to a set of matching OpenAPI operations. + This set of operations can then be referenced for granular filtering in APIAccesses. + properties: + matchers: + description: Matchers defines a list of alternative rules + for matching OpenAPI operations. + items: + description: OperationMatcher defines criteria for matching + an OpenAPI operation. + minProperties: 1 + properties: + methods: + description: Methods specifies the HTTP methods to + be included for selection. + items: + type: string + maxItems: 10 + type: array + path: + description: Path specifies the exact path of the + operations to select. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: must start with a '/' + rule: self.startsWith('/') + - message: cannot contains '../' + rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' + pathPrefix: + description: PathPrefix specifies the path prefix + of the operations to select. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: must start with a '/' + rule: self.startsWith('/') + - message: cannot contains '../' + rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' + pathRegex: + description: PathRegex specifies a regular expression + pattern for matching operations based on their paths. + type: string + type: object + x-kubernetes-validations: + - message: path, pathPrefix and pathRegex are mutually + exclusive + rule: '[has(self.path), has(self.pathPrefix), has(self.pathRegex)].filter(x, + x).size() <= 1' + maxItems: 100 + minItems: 1 + type: array + name: + description: Name is the name of the OperationSet to reference + in APIAccesses. + maxLength: 253 + type: string + required: + - matchers + - name + type: object + maxItems: 100 + type: array + override: + description: Override holds data used to override OpenAPI specification. + properties: + servers: + items: + properties: + url: + type: string + x-kubernetes-validations: + - message: must be a valid URL + rule: isURL(self) + required: + - url + type: object + maxItems: 100 + minItems: 1 + type: array + required: + - servers + type: object + path: + description: |- + Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: must start with a '/' + rule: self.startsWith('/') + - message: cannot contains '../' + rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' + url: + description: |- + URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + type: string + x-kubernetes-validations: + - message: must be a valid URL + rule: isURL(self) + type: object + x-kubernetes-validations: + - message: path or url must be defined + rule: has(self.path) || has(self.url) + release: + description: |- + Release is the version number of the API. + This value must follow the SemVer format: https://semver.org/ + maxLength: 100 + type: string + x-kubernetes-validations: + - message: must be a valid semver version + rule: self.matches(r"""^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$""") + title: + description: Title is the public facing name of the APIVersion. + type: string + required: + - release + type: object + status: + description: The current status of this APIVersion. + properties: + hash: + description: Hash is a hash representing the APIVersion. + type: string + syncedAt: + format: date-time + type: string + version: + type: string + type: object + type: object + served: true + storage: true + subresources: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: ingressroutes.traefik.io +spec: + group: traefik.io + names: + kind: IngressRoute + listKind: IngressRouteList + plural: ingressroutes + singular: ingressroute + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRoute is the CRD implementation of a Traefik HTTP Router. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: IngressRouteSpec defines the desired state of IngressRoute. + properties: + entryPoints: + description: |- + EntryPoints defines the list of entry point names to bind to. + Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ + Default: all. + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: Route holds the HTTP route configuration. + properties: + kind: + description: |- + Kind defines the kind of the route. + Rule is the only supported kind. + enum: + - Rule + type: string + match: + description: |- + Match defines the router's rule. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule + type: string + middlewares: + description: |- + Middlewares defines the list of references to Middleware resources. + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-middleware + items: + description: MiddlewareRef is a reference to a Middleware + resource. + properties: + name: + description: Name defines the name of the referenced Middleware + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Middleware resource. + type: string + required: + - name + type: object + type: array + priority: + description: |- + Priority defines the router's priority. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority + type: integer + services: + description: |- + Services defines the list of Service. + It can contain any combination of TraefikService and/or reference to a Kubernetes Service. + items: + description: Service defines an upstream HTTP service to proxy + traffic to. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: |- + Name defines the name of the referenced Kubernetes Service or TraefikService. + The differentiation between the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: |- + PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to + the client. + properties: + flushInterval: + description: |- + FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. + A negative value means to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms + type: string + type: object + scheme: + description: |- + Scheme defines the scheme to use for the request to the upstream Kubernetes Service. + It defaults to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: |- + ServersTransport defines the name of ServersTransport resource to use. + It allows to configure the transport between Traefik and your servers. + Can only be used on a Kubernetes Service. + type: string + sticky: + description: |- + Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as + JavaScript. + type: boolean + maxAge: + description: |- + MaxAge indicates the number of seconds until the cookie expires. + When set to a negative number, the cookie expires immediately. + When set to zero, the cookie never expires. + type: integer + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: |- + SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite + type: string + secure: + description: Secure defines whether the cookie + can only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: |- + Strategy defines the load balancing strategy between the servers. + RoundRobin is the only supported value at the moment. + type: string + weight: + description: |- + Weight defines the weight and should only be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + syntax: + description: |- + Syntax defines the router's rule syntax. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax + type: string + required: + - kind + - match + type: object + type: array + tls: + description: |- + TLS defines the TLS configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls + properties: + certResolver: + description: |- + CertResolver defines the name of the certificate resolver to use. + Cert resolvers have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers + type: string + domains: + description: |- + Domains defines the list of domains that will be used to issue certificates. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains + items: + description: Domain holds a domain name with SANs. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain + names. + items: + type: string + type: array + type: object + type: array + options: + description: |- + Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. + If not defined, the `default` TLSOption is used. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options + properties: + name: + description: |- + Name defines the name of the referenced TLSOption. + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption + type: string + namespace: + description: |- + Namespace defines the namespace of the referenced TLSOption. + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption + type: string + required: + - name + type: object + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: |- + Store defines the reference to the TLSStore, that will be used to store certificates. + Please note that only `default` TLSStore can be used. + properties: + name: + description: |- + Name defines the name of the referenced TLSStore. + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore + type: string + namespace: + description: |- + Namespace defines the namespace of the referenced TLSStore. + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: ingressroutetcps.traefik.io +spec: + group: traefik.io + names: + kind: IngressRouteTCP + listKind: IngressRouteTCPList + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP. + properties: + entryPoints: + description: |- + EntryPoints defines the list of entry point names to bind to. + Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ + Default: all. + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: RouteTCP holds the TCP route configuration. + properties: + match: + description: |- + Match defines the router's rule. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule_1 + type: string + middlewares: + description: Middlewares defines the list of references to MiddlewareTCP + resources. + items: + description: ObjectReference is a generic reference to a Traefik + resource. + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + type: array + priority: + description: |- + Priority defines the router's priority. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority_1 + type: integer + services: + description: Services defines the list of TCP services. + items: + description: ServiceTCP defines an upstream TCP service to + proxy traffic to. + properties: + name: + description: Name defines the name of the referenced Kubernetes + Service. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + proxyProtocol: + description: |- + ProxyProtocol defines the PROXY protocol configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol + properties: + version: + description: Version defines the PROXY Protocol version + to use. + type: integer + type: object + serversTransport: + description: |- + ServersTransport defines the name of ServersTransportTCP resource to use. + It allows to configure the transport between Traefik and your servers. + Can only be used on a Kubernetes Service. + type: string + terminationDelay: + description: |- + TerminationDelay defines the deadline that the proxy sets, after one of its connected peers indicates + it has closed the writing capability of its connection, to close the reading capability as well, + hence fully terminating the connection. + It is a duration in milliseconds, defaulting to 100. + A negative value means an infinite deadline (i.e. the reading capability is never closed). + Deprecated: TerminationDelay is not supported APIVersion traefik.io/v1, please use ServersTransport to configure the TerminationDelay instead. + type: integer + tls: + description: TLS determines whether to use TLS when dialing + with the backend. + type: boolean + weight: + description: Weight defines the weight used when balancing + requests between multiple Kubernetes Service. + type: integer + required: + - name + - port + type: object + type: array + syntax: + description: |- + Syntax defines the router's rule syntax. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax_1 + type: string + required: + - match + type: object + type: array + tls: + description: |- + TLS defines the TLS configuration on a layer 4 / TCP Route. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 + properties: + certResolver: + description: |- + CertResolver defines the name of the certificate resolver to use. + Cert resolvers have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers + type: string + domains: + description: |- + Domains defines the list of domains that will be used to issue certificates. + More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains + items: + description: Domain holds a domain name with SANs. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain + names. + items: + type: string + type: array + type: object + type: array + options: + description: |- + Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. + If not defined, the `default` TLSOption is used. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + passthrough: + description: Passthrough defines whether a TLS router will terminate + the TLS connection. + type: boolean + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: |- + Store defines the reference to the TLSStore, that will be used to store certificates. + Please note that only `default` TLSStore can be used. + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: ingressrouteudps.traefik.io +spec: + group: traefik.io + names: + kind: IngressRouteUDP + listKind: IngressRouteUDPList + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP. + properties: + entryPoints: + description: |- + EntryPoints defines the list of entry point names to bind to. + Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ + Default: all. + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: RouteUDP holds the UDP route configuration. + properties: + services: + description: Services defines the list of UDP services. + items: + description: ServiceUDP defines an upstream UDP service to + proxy traffic to. + properties: + name: + description: Name defines the name of the referenced Kubernetes + Service. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + weight: + description: Weight defines the weight used when balancing + requests between multiple Kubernetes Service. + type: integer + required: + - name + - port + type: object + type: array + type: object + type: array + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: middlewares.traefik.io +spec: + group: traefik.io + names: + kind: Middleware + listKind: MiddlewareList + plural: middlewares + singular: middleware + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + Middleware is the CRD implementation of a Traefik Middleware. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/overview/ + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: MiddlewareSpec defines the desired state of a Middleware. + properties: + addPrefix: + description: |- + AddPrefix holds the add prefix middleware configuration. + This middleware updates the path of a request before forwarding it. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ + properties: + prefix: + description: |- + Prefix is the string to add before the current path in the requested URL. + It should include a leading slash (/). + type: string + type: object + basicAuth: + description: |- + BasicAuth holds the basic auth middleware configuration. + This middleware restricts access to your services to known users. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ + properties: + headerField: + description: |- + HeaderField defines a header field to store the authenticated user. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield + type: string + realm: + description: |- + Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme. + Default: traefik. + type: string + removeHeader: + description: |- + RemoveHeader sets the removeHeader option to true to remove the authorization header before forwarding the request to your service. + Default: false. + type: boolean + secret: + description: Secret is the name of the referenced Kubernetes Secret + containing user credentials. + type: string + type: object + buffering: + description: |- + Buffering holds the buffering middleware configuration. + This middleware retries or limits the size of requests that can be forwarded to backends. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes + properties: + maxRequestBodyBytes: + description: |- + MaxRequestBodyBytes defines the maximum allowed body size for the request (in bytes). + If the request exceeds the allowed size, it is not forwarded to the service, and the client gets a 413 (Request Entity Too Large) response. + Default: 0 (no maximum). + format: int64 + type: integer + maxResponseBodyBytes: + description: |- + MaxResponseBodyBytes defines the maximum allowed response size from the service (in bytes). + If the response exceeds the allowed size, it is not forwarded to the client. The client gets a 500 (Internal Server Error) response instead. + Default: 0 (no maximum). + format: int64 + type: integer + memRequestBodyBytes: + description: |- + MemRequestBodyBytes defines the threshold (in bytes) from which the request will be buffered on disk instead of in memory. + Default: 1048576 (1Mi). + format: int64 + type: integer + memResponseBodyBytes: + description: |- + MemResponseBodyBytes defines the threshold (in bytes) from which the response will be buffered on disk instead of in memory. + Default: 1048576 (1Mi). + format: int64 + type: integer + retryExpression: + description: |- + RetryExpression defines the retry conditions. + It is a logical combination of functions with operators AND (&&) and OR (||). + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#retryexpression + type: string + type: object + chain: + description: |- + Chain holds the configuration of the chain middleware. + This middleware enables to define reusable combinations of other pieces of middleware. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ + properties: + middlewares: + description: Middlewares is the list of MiddlewareRef which composes + the chain. + items: + description: MiddlewareRef is a reference to a Middleware resource. + properties: + name: + description: Name defines the name of the referenced Middleware + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Middleware resource. + type: string + required: + - name + type: object + type: array + type: object + circuitBreaker: + description: CircuitBreaker holds the circuit breaker configuration. + properties: + checkPeriod: + anyOf: + - type: integer + - type: string + description: CheckPeriod is the interval between successive checks + of the circuit breaker condition (when in standby state). + x-kubernetes-int-or-string: true + expression: + description: Expression is the condition that triggers the tripped + state. + type: string + fallbackDuration: + anyOf: + - type: integer + - type: string + description: FallbackDuration is the duration for which the circuit + breaker will wait before trying to recover (from a tripped state). + x-kubernetes-int-or-string: true + recoveryDuration: + anyOf: + - type: integer + - type: string + description: RecoveryDuration is the duration for which the circuit + breaker will try to recover (as soon as it is in recovering + state). + x-kubernetes-int-or-string: true + type: object + compress: + description: |- + Compress holds the compress middleware configuration. + This middleware compresses responses before sending them to the client, using gzip compression. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ + properties: + excludedContentTypes: + description: |- + ExcludedContentTypes defines the list of content types to compare the Content-Type header of the incoming requests and responses before compressing. + `application/grpc` is always excluded. + items: + type: string + type: array + includedContentTypes: + description: IncludedContentTypes defines the list of content + types to compare the Content-Type header of the responses before + compressing. + items: + type: string + type: array + minResponseBodyBytes: + description: |- + MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed. + Default: 1024. + type: integer + type: object + contentType: + description: |- + ContentType holds the content-type middleware configuration. + This middleware exists to enable the correct behavior until at least the default one can be changed in a future version. + properties: + autoDetect: + description: |- + AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend, + be automatically set to a value derived from the contents of the response. + Deprecated: AutoDetect option is deprecated, Content-Type middleware is only meant to be used to enable the content-type detection, please remove any usage of this option. + type: boolean + type: object + digestAuth: + description: |- + DigestAuth holds the digest auth middleware configuration. + This middleware restricts access to your services to known users. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ + properties: + headerField: + description: |- + HeaderField defines a header field to store the authenticated user. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield + type: string + realm: + description: |- + Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme. + Default: traefik. + type: string + removeHeader: + description: RemoveHeader defines whether to remove the authorization + header before forwarding the request to the backend. + type: boolean + secret: + description: Secret is the name of the referenced Kubernetes Secret + containing user credentials. + type: string + type: object + errors: + description: |- + ErrorPage holds the custom error middleware configuration. + This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ + properties: + query: + description: |- + Query defines the URL for the error page (hosted by service). + The {status} variable can be used in order to insert the status code in the URL. + type: string + service: + description: |- + Service defines the reference to a Kubernetes Service that will serve the error page. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: |- + Name defines the name of the referenced Kubernetes Service or TraefikService. + The differentiation between the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: |- + PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: |- + FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. + A negative value means to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms + type: string + type: object + scheme: + description: |- + Scheme defines the scheme to use for the request to the upstream Kubernetes Service. + It defaults to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: |- + ServersTransport defines the name of ServersTransport resource to use. + It allows to configure the transport between Traefik and your servers. + Can only be used on a Kubernetes Service. + type: string + sticky: + description: |- + Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can + be accessed by client-side APIs, such as JavaScript. + type: boolean + maxAge: + description: |- + MaxAge indicates the number of seconds until the cookie expires. + When set to a negative number, the cookie expires immediately. + When set to zero, the cookie never expires. + type: integer + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: |- + SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: |- + Strategy defines the load balancing strategy between the servers. + RoundRobin is the only supported value at the moment. + type: string + weight: + description: |- + Weight defines the weight and should only be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + status: + description: |- + Status defines which status or range of statuses should result in an error page. + It can be either a status code as a number (500), + as multiple comma-separated numbers (500,502), + as ranges by separating two codes with a dash (500-599), + or a combination of the two (404,418,500-599). + items: + type: string + type: array + type: object + forwardAuth: + description: |- + ForwardAuth holds the forward auth middleware configuration. + This middleware delegates the request authentication to a Service. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ + properties: + addAuthCookiesToResponse: + description: AddAuthCookiesToResponse defines the list of cookies + to copy from the authentication server response to the response. + items: + type: string + type: array + address: + description: Address defines the authentication server address. + type: string + authRequestHeaders: + description: |- + AuthRequestHeaders defines the list of the headers to copy from the request to the authentication server. + If not set or empty then all request headers are passed. + items: + type: string + type: array + authResponseHeaders: + description: AuthResponseHeaders defines the list of headers to + copy from the authentication server response and set on forwarded + request, replacing any existing conflicting headers. + items: + type: string + type: array + authResponseHeadersRegex: + description: |- + AuthResponseHeadersRegex defines the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/#authresponseheadersregex + type: string + tls: + description: TLS defines the configuration used to secure the + connection to the authentication server. + properties: + caOptional: + description: 'Deprecated: TLS client authentication is a server + side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634).' + type: boolean + caSecret: + description: |- + CASecret is the name of the referenced Kubernetes Secret containing the CA to validate the server certificate. + The CA certificate is extracted from key `tls.ca` or `ca.crt`. + type: string + certSecret: + description: |- + CertSecret is the name of the referenced Kubernetes Secret containing the client certificate. + The client certificate is extracted from the keys `tls.crt` and `tls.key`. + type: string + insecureSkipVerify: + description: InsecureSkipVerify defines whether the server + certificates should be validated. + type: boolean + type: object + trustForwardHeader: + description: 'TrustForwardHeader defines whether to trust (ie: + forward) all X-Forwarded-* headers.' + type: boolean + type: object + grpcWeb: + description: |- + GrpcWeb holds the gRPC web middleware configuration. + This middleware converts a gRPC web request to an HTTP/2 gRPC request. + properties: + allowOrigins: + description: |- + AllowOrigins is a list of allowable origins. + Can also be a wildcard origin "*". + items: + type: string + type: array + type: object + headers: + description: |- + Headers holds the headers middleware configuration. + This middleware manages the requests and responses headers. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders + properties: + accessControlAllowCredentials: + description: AccessControlAllowCredentials defines whether the + request can include user credentials. + type: boolean + accessControlAllowHeaders: + description: AccessControlAllowHeaders defines the Access-Control-Request-Headers + values sent in preflight response. + items: + type: string + type: array + accessControlAllowMethods: + description: AccessControlAllowMethods defines the Access-Control-Request-Method + values sent in preflight response. + items: + type: string + type: array + accessControlAllowOriginList: + description: AccessControlAllowOriginList is a list of allowable + origins. Can also be a wildcard origin "*". + items: + type: string + type: array + accessControlAllowOriginListRegex: + description: AccessControlAllowOriginListRegex is a list of allowable + origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). + items: + type: string + type: array + accessControlExposeHeaders: + description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers + values sent in preflight response. + items: + type: string + type: array + accessControlMaxAge: + description: AccessControlMaxAge defines the time that a preflight + request may be cached. + format: int64 + type: integer + addVaryHeader: + description: AddVaryHeader defines whether the Vary header is + automatically added/updated when the AccessControlAllowOriginList + is set. + type: boolean + allowedHosts: + description: AllowedHosts defines the fully qualified list of + allowed domain names. + items: + type: string + type: array + browserXssFilter: + description: BrowserXSSFilter defines whether to add the X-XSS-Protection + header with the value 1; mode=block. + type: boolean + contentSecurityPolicy: + description: ContentSecurityPolicy defines the Content-Security-Policy + header value. + type: string + contentTypeNosniff: + description: ContentTypeNosniff defines whether to add the X-Content-Type-Options + header with the nosniff value. + type: boolean + customBrowserXSSValue: + description: |- + CustomBrowserXSSValue defines the X-XSS-Protection header value. + This overrides the BrowserXssFilter option. + type: string + customFrameOptionsValue: + description: |- + CustomFrameOptionsValue defines the X-Frame-Options header value. + This overrides the FrameDeny option. + type: string + customRequestHeaders: + additionalProperties: + type: string + description: CustomRequestHeaders defines the header names and + values to apply to the request. + type: object + customResponseHeaders: + additionalProperties: + type: string + description: CustomResponseHeaders defines the header names and + values to apply to the response. + type: object + featurePolicy: + description: 'Deprecated: FeaturePolicy option is deprecated, + please use PermissionsPolicy instead.' + type: string + forceSTSHeader: + description: ForceSTSHeader defines whether to add the STS header + even when the connection is HTTP. + type: boolean + frameDeny: + description: FrameDeny defines whether to add the X-Frame-Options + header with the DENY value. + type: boolean + hostsProxyHeaders: + description: HostsProxyHeaders defines the header keys that may + hold a proxied hostname value for the request. + items: + type: string + type: array + isDevelopment: + description: |- + IsDevelopment defines whether to mitigate the unwanted effects of the AllowedHosts, SSL, and STS options when developing. + Usually testing takes place using HTTP, not HTTPS, and on localhost, not your production domain. + If you would like your development environment to mimic production with complete Host blocking, SSL redirects, + and STS headers, leave this as false. + type: boolean + permissionsPolicy: + description: |- + PermissionsPolicy defines the Permissions-Policy header value. + This allows sites to control browser features. + type: string + publicKey: + description: PublicKey is the public key that implements HPKP + to prevent MITM attacks with forged certificates. + type: string + referrerPolicy: + description: |- + ReferrerPolicy defines the Referrer-Policy header value. + This allows sites to control whether browsers forward the Referer header to other sites. + type: string + sslForceHost: + description: 'Deprecated: SSLForceHost option is deprecated, please + use RedirectRegex instead.' + type: boolean + sslHost: + description: 'Deprecated: SSLHost option is deprecated, please + use RedirectRegex instead.' + type: string + sslProxyHeaders: + additionalProperties: + type: string + description: |- + SSLProxyHeaders defines the header keys with associated values that would indicate a valid HTTPS request. + It can be useful when using other proxies (example: "X-Forwarded-Proto": "https"). + type: object + sslRedirect: + description: 'Deprecated: SSLRedirect option is deprecated, please + use EntryPoint redirection or RedirectScheme instead.' + type: boolean + sslTemporaryRedirect: + description: 'Deprecated: SSLTemporaryRedirect option is deprecated, + please use EntryPoint redirection or RedirectScheme instead.' + type: boolean + stsIncludeSubdomains: + description: STSIncludeSubdomains defines whether the includeSubDomains + directive is appended to the Strict-Transport-Security header. + type: boolean + stsPreload: + description: STSPreload defines whether the preload flag is appended + to the Strict-Transport-Security header. + type: boolean + stsSeconds: + description: |- + STSSeconds defines the max-age of the Strict-Transport-Security header. + If set to 0, the header is not set. + format: int64 + type: integer + type: object + inFlightReq: + description: |- + InFlightReq holds the in-flight request middleware configuration. + This middleware limits the number of requests being processed and served concurrently. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ + properties: + amount: + description: |- + Amount defines the maximum amount of allowed simultaneous in-flight request. + The middleware responds with HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy). + format: int64 + type: integer + sourceCriterion: + description: |- + SourceCriterion defines what criterion is used to group requests as originating from a common source. + If several strategies are defined at the same time, an error will be raised. + If none are set, the default is to use the requestHost. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion + properties: + ipStrategy: + description: |- + IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position + (starting from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the + X-Forwarded-For header and select the first IP not in + the list. + items: + type: string + type: array + type: object + requestHeaderName: + description: RequestHeaderName defines the name of the header + used to group incoming requests. + type: string + requestHost: + description: RequestHost defines whether to consider the request + Host as the source. + type: boolean + type: object + type: object + ipAllowList: + description: |- + IPAllowList holds the IP allowlist middleware configuration. + This middleware accepts / refuses requests based on the client IP. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ + properties: + ipStrategy: + description: |- + IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position (starting + from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the X-Forwarded-For + header and select the first IP not in the list. + items: + type: string + type: array + type: object + rejectStatusCode: + description: |- + RejectStatusCode defines the HTTP status code used for refused requests. + If not set, the default is 403 (Forbidden). + type: integer + sourceRange: + description: SourceRange defines the set of allowed IPs (or ranges + of allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + ipWhiteList: + description: 'Deprecated: please use IPAllowList instead.' + properties: + ipStrategy: + description: |- + IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position (starting + from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the X-Forwarded-For + header and select the first IP not in the list. + items: + type: string + type: array + type: object + sourceRange: + description: SourceRange defines the set of allowed IPs (or ranges + of allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + passTLSClientCert: + description: |- + PassTLSClientCert holds the pass TLS client cert middleware configuration. + This middleware adds the selected data from the passed client TLS certificate to a header. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ + properties: + info: + description: Info selects the specific client certificate details + you want to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + issuer: + description: Issuer defines the client certificate issuer + details to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + commonName: + description: CommonName defines whether to add the organizationalUnit + information into the issuer. + type: boolean + country: + description: Country defines whether to add the country + information into the issuer. + type: boolean + domainComponent: + description: DomainComponent defines whether to add the + domainComponent information into the issuer. + type: boolean + locality: + description: Locality defines whether to add the locality + information into the issuer. + type: boolean + organization: + description: Organization defines whether to add the organization + information into the issuer. + type: boolean + province: + description: Province defines whether to add the province + information into the issuer. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the serialNumber + information into the issuer. + type: boolean + type: object + notAfter: + description: NotAfter defines whether to add the Not After + information from the Validity part. + type: boolean + notBefore: + description: NotBefore defines whether to add the Not Before + information from the Validity part. + type: boolean + sans: + description: Sans defines whether to add the Subject Alternative + Name information from the Subject Alternative Name part. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the client + serialNumber information. + type: boolean + subject: + description: Subject defines the client certificate subject + details to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + commonName: + description: CommonName defines whether to add the organizationalUnit + information into the subject. + type: boolean + country: + description: Country defines whether to add the country + information into the subject. + type: boolean + domainComponent: + description: DomainComponent defines whether to add the + domainComponent information into the subject. + type: boolean + locality: + description: Locality defines whether to add the locality + information into the subject. + type: boolean + organization: + description: Organization defines whether to add the organization + information into the subject. + type: boolean + organizationalUnit: + description: OrganizationalUnit defines whether to add + the organizationalUnit information into the subject. + type: boolean + province: + description: Province defines whether to add the province + information into the subject. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the serialNumber + information into the subject. + type: boolean + type: object + type: object + pem: + description: PEM sets the X-Forwarded-Tls-Client-Cert header with + the certificate. + type: boolean + type: object + plugin: + additionalProperties: + x-kubernetes-preserve-unknown-fields: true + description: |- + Plugin defines the middleware plugin configuration. + More info: https://doc.traefik.io/traefik/plugins/ + type: object + rateLimit: + description: |- + RateLimit holds the rate limit configuration. + This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ + properties: + average: + description: |- + Average is the maximum rate, by default in requests/s, allowed for the given source. + It defaults to 0, which means no rate limiting. + The rate is actually defined by dividing Average by Period. So for a rate below 1req/s, + one needs to define a Period larger than a second. + format: int64 + type: integer + burst: + description: |- + Burst is the maximum number of requests allowed to arrive in the same arbitrarily small period of time. + It defaults to 1. + format: int64 + type: integer + period: + anyOf: + - type: integer + - type: string + description: |- + Period, in combination with Average, defines the actual maximum rate, such as: + r = Average / Period. It defaults to a second. + x-kubernetes-int-or-string: true + sourceCriterion: + description: |- + SourceCriterion defines what criterion is used to group requests as originating from a common source. + If several strategies are defined at the same time, an error will be raised. + If none are set, the default is to use the request's remote address field (as an ipStrategy). + properties: + ipStrategy: + description: |- + IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position + (starting from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the + X-Forwarded-For header and select the first IP not in + the list. + items: + type: string + type: array + type: object + requestHeaderName: + description: RequestHeaderName defines the name of the header + used to group incoming requests. + type: string + requestHost: + description: RequestHost defines whether to consider the request + Host as the source. + type: boolean + type: object + type: object + redirectRegex: + description: |- + RedirectRegex holds the redirect regex middleware configuration. + This middleware redirects a request using regex matching and replacement. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex + properties: + permanent: + description: Permanent defines whether the redirection is permanent + (301). + type: boolean + regex: + description: Regex defines the regex used to match and capture + elements from the request URL. + type: string + replacement: + description: Replacement defines how to modify the URL to have + the new target URL. + type: string + type: object + redirectScheme: + description: |- + RedirectScheme holds the redirect scheme middleware configuration. + This middleware redirects requests from a scheme/port to another. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ + properties: + permanent: + description: Permanent defines whether the redirection is permanent + (301). + type: boolean + port: + description: Port defines the port of the new URL. + type: string + scheme: + description: Scheme defines the scheme of the new URL. + type: string + type: object + replacePath: + description: |- + ReplacePath holds the replace path middleware configuration. + This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ + properties: + path: + description: Path defines the path to use as replacement in the + request URL. + type: string + type: object + replacePathRegex: + description: |- + ReplacePathRegex holds the replace path regex middleware configuration. + This middleware replaces the path of a URL using regex matching and replacement. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ + properties: + regex: + description: Regex defines the regular expression used to match + and capture the path from the request URL. + type: string + replacement: + description: Replacement defines the replacement path format, + which can include captured variables. + type: string + type: object + retry: + description: |- + Retry holds the retry middleware configuration. + This middleware reissues requests a given number of times to a backend server if that server does not reply. + As soon as the server answers, the middleware stops retrying, regardless of the response status. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ + properties: + attempts: + description: Attempts defines how many times the request should + be retried. + type: integer + initialInterval: + anyOf: + - type: integer + - type: string + description: |- + InitialInterval defines the first wait time in the exponential backoff series. + The maximum interval is calculated as twice the initialInterval. + If unspecified, requests will be retried immediately. + The value of initialInterval should be provided in seconds or as a valid duration format, + see https://pkg.go.dev/time#ParseDuration. + x-kubernetes-int-or-string: true + type: object + stripPrefix: + description: |- + StripPrefix holds the strip prefix middleware configuration. + This middleware removes the specified prefixes from the URL path. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ + properties: + forceSlash: + description: |- + Deprecated: ForceSlash option is deprecated, please remove any usage of this option. + ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary. + Default: true. + type: boolean + prefixes: + description: Prefixes defines the prefixes to strip from the request + URL. + items: + type: string + type: array + type: object + stripPrefixRegex: + description: |- + StripPrefixRegex holds the strip prefix regex middleware configuration. + This middleware removes the matching prefixes from the URL path. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ + properties: + regex: + description: Regex defines the regular expression to match the + path prefix from the request URL. + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: middlewaretcps.traefik.io +spec: + group: traefik.io + names: + kind: MiddlewareTCP + listKind: MiddlewareTCPList + plural: middlewaretcps + singular: middlewaretcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + MiddlewareTCP is the CRD implementation of a Traefik TCP middleware. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/overview/ + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP. + properties: + inFlightConn: + description: InFlightConn defines the InFlightConn middleware configuration. + properties: + amount: + description: |- + Amount defines the maximum amount of allowed simultaneous connections. + The middleware closes the connection if there are already amount connections opened. + format: int64 + type: integer + type: object + ipAllowList: + description: |- + IPAllowList defines the IPAllowList middleware configuration. + This middleware accepts/refuses connections based on the client IP. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ + properties: + sourceRange: + description: SourceRange defines the allowed IPs (or ranges of + allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + ipWhiteList: + description: |- + IPWhiteList defines the IPWhiteList middleware configuration. + This middleware accepts/refuses connections based on the client IP. + Deprecated: please use IPAllowList instead. + More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ + properties: + sourceRange: + description: SourceRange defines the allowed IPs (or ranges of + allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: serverstransports.traefik.io +spec: + group: traefik.io + names: + kind: ServersTransport + listKind: ServersTransportList + plural: serverstransports + singular: serverstransport + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + ServersTransport is the CRD implementation of a ServersTransport. + If no serversTransport is specified, the default@internal will be used. + The default@internal serversTransport is created from the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_1 + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServersTransportSpec defines the desired state of a ServersTransport. + properties: + certificatesSecrets: + description: CertificatesSecrets defines a list of secret storing + client certificates for mTLS. + items: + type: string + type: array + disableHTTP2: + description: DisableHTTP2 disables HTTP/2 for connections with backend + servers. + type: boolean + forwardingTimeouts: + description: ForwardingTimeouts defines the timeouts for requests + forwarded to the backend servers. + properties: + dialTimeout: + anyOf: + - type: integer + - type: string + description: DialTimeout is the amount of time to wait until a + connection to a backend server can be established. + x-kubernetes-int-or-string: true + idleConnTimeout: + anyOf: + - type: integer + - type: string + description: IdleConnTimeout is the maximum period for which an + idle HTTP keep-alive connection will remain open before closing + itself. + x-kubernetes-int-or-string: true + pingTimeout: + anyOf: + - type: integer + - type: string + description: PingTimeout is the timeout after which the HTTP/2 + connection will be closed if a response to ping is not received. + x-kubernetes-int-or-string: true + readIdleTimeout: + anyOf: + - type: integer + - type: string + description: ReadIdleTimeout is the timeout after which a health + check using ping frame will be carried out if no frame is received + on the HTTP/2 connection. + x-kubernetes-int-or-string: true + responseHeaderTimeout: + anyOf: + - type: integer + - type: string + description: ResponseHeaderTimeout is the amount of time to wait + for a server's response headers after fully writing the request + (including its body, if any). + x-kubernetes-int-or-string: true + type: object + insecureSkipVerify: + description: InsecureSkipVerify disables SSL certificate verification. + type: boolean + maxIdleConnsPerHost: + description: MaxIdleConnsPerHost controls the maximum idle (keep-alive) + to keep per-host. + type: integer + peerCertURI: + description: PeerCertURI defines the peer cert URI used to match against + SAN URI during the peer certificate verification. + type: string + rootCAsSecrets: + description: RootCAsSecrets defines a list of CA secret used to validate + self-signed certificate. + items: + type: string + type: array + serverName: + description: ServerName defines the server name used to contact the + server. + type: string + spiffe: + description: Spiffe defines the SPIFFE configuration. + properties: + ids: + description: IDs defines the allowed SPIFFE IDs (takes precedence + over the SPIFFE TrustDomain). + items: + type: string + type: array + trustDomain: + description: TrustDomain defines the allowed SPIFFE trust domain. + type: string + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: serverstransporttcps.traefik.io +spec: + group: traefik.io + names: + kind: ServersTransportTCP + listKind: ServersTransportTCPList + plural: serverstransporttcps + singular: serverstransporttcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + ServersTransportTCP is the CRD implementation of a TCPServersTransport. + If no tcpServersTransport is specified, a default one named default@internal will be used. + The default@internal tcpServersTransport can be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_3 + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServersTransportTCPSpec defines the desired state of a ServersTransportTCP. + properties: + dialKeepAlive: + anyOf: + - type: integer + - type: string + description: DialKeepAlive is the interval between keep-alive probes + for an active network connection. If zero, keep-alive probes are + sent with a default value (currently 15 seconds), if supported by + the protocol and operating system. Network protocols or operating + systems that do not support keep-alives ignore this field. If negative, + keep-alive probes are disabled. + x-kubernetes-int-or-string: true + dialTimeout: + anyOf: + - type: integer + - type: string + description: DialTimeout is the amount of time to wait until a connection + to a backend server can be established. + x-kubernetes-int-or-string: true + terminationDelay: + anyOf: + - type: integer + - type: string + description: TerminationDelay defines the delay to wait before fully + terminating the connection, after one connected peer has closed + its writing capability. + x-kubernetes-int-or-string: true + tls: + description: TLS defines the TLS configuration + properties: + certificatesSecrets: + description: CertificatesSecrets defines a list of secret storing + client certificates for mTLS. + items: + type: string + type: array + insecureSkipVerify: + description: InsecureSkipVerify disables TLS certificate verification. + type: boolean + peerCertURI: + description: |- + MaxIdleConnsPerHost controls the maximum idle (keep-alive) to keep per-host. + PeerCertURI defines the peer cert URI used to match against SAN URI during the peer certificate verification. + type: string + rootCAsSecrets: + description: RootCAsSecrets defines a list of CA secret used to + validate self-signed certificates. + items: + type: string + type: array + serverName: + description: ServerName defines the server name used to contact + the server. + type: string + spiffe: + description: Spiffe defines the SPIFFE configuration. + properties: + ids: + description: IDs defines the allowed SPIFFE IDs (takes precedence + over the SPIFFE TrustDomain). + items: + type: string + type: array + trustDomain: + description: TrustDomain defines the allowed SPIFFE trust + domain. + type: string + type: object + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: tlsoptions.traefik.io +spec: + group: traefik.io + names: + kind: TLSOption + listKind: TLSOptionList + plural: tlsoptions + singular: tlsoption + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + TLSOption is the CRD implementation of a Traefik TLS Option, allowing to configure some parameters of the TLS connection. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: TLSOptionSpec defines the desired state of a TLSOption. + properties: + alpnProtocols: + description: |- + ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#alpn-protocols + items: + type: string + type: array + cipherSuites: + description: |- + CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#cipher-suites + items: + type: string + type: array + clientAuth: + description: ClientAuth defines the server's policy for TLS Client + Authentication. + properties: + clientAuthType: + description: ClientAuthType defines the client authentication + type to apply. + enum: + - NoClientCert + - RequestClientCert + - RequireAnyClientCert + - VerifyClientCertIfGiven + - RequireAndVerifyClientCert + type: string + secretNames: + description: SecretNames defines the names of the referenced Kubernetes + Secret storing certificate details. + items: + type: string + type: array + type: object + curvePreferences: + description: |- + CurvePreferences defines the preferred elliptic curves in a specific order. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#curve-preferences + items: + type: string + type: array + maxVersion: + description: |- + MaxVersion defines the maximum TLS version that Traefik will accept. + Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. + Default: None. + type: string + minVersion: + description: |- + MinVersion defines the minimum TLS version that Traefik will accept. + Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. + Default: VersionTLS10. + type: string + preferServerCipherSuites: + description: |- + PreferServerCipherSuites defines whether the server chooses a cipher suite among his own instead of among the client's. + It is enabled automatically when minVersion or maxVersion is set. + Deprecated: https://github.com/golang/go/issues/45430 + type: boolean + sniStrict: + description: SniStrict defines whether Traefik allows connections + from clients connections that do not specify a server_name extension. + type: boolean + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: tlsstores.traefik.io +spec: + group: traefik.io + names: + kind: TLSStore + listKind: TLSStoreList + plural: tlsstores + singular: tlsstore + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + TLSStore is the CRD implementation of a Traefik TLS Store. + For the time being, only the TLSStore named default is supported. + This means that you cannot have two stores that are named default in different Kubernetes namespaces. + More info: https://doc.traefik.io/traefik/v3.0/https/tls/#certificates-stores + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: TLSStoreSpec defines the desired state of a TLSStore. + properties: + certificates: + description: Certificates is a list of secret names, each secret holding + a key/certificate pair to add to the store. + items: + description: Certificate holds a secret name for the TLSStore resource. + properties: + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + type: array + defaultCertificate: + description: DefaultCertificate defines the default certificate configuration. + properties: + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + defaultGeneratedCert: + description: DefaultGeneratedCert defines the default generated certificate + configuration. + properties: + domain: + description: Domain is the domain definition for the DefaultCertificate. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain names. + items: + type: string + type: array + type: object + resolver: + description: Resolver is the name of the resolver that will be + used to issue the DefaultCertificate. + type: string + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: traefikservices.traefik.io +spec: + group: traefik.io + names: + kind: TraefikService + listKind: TraefikServiceList + plural: traefikservices + singular: traefikservice + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + TraefikService is the CRD implementation of a Traefik Service. + TraefikService object allows to: + - Apply weight to Services on load-balancing + - Mirror traffic on services + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-traefikservice + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: TraefikServiceSpec defines the desired state of a TraefikService. + properties: + mirroring: + description: Mirroring defines the Mirroring service configuration. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + maxBodySize: + description: |- + MaxBodySize defines the maximum size allowed for the body of the request. + If the body is larger, the request is not mirrored. + Default value is -1, which means unlimited size. + format: int64 + type: integer + mirrors: + description: Mirrors defines the list of mirrors where Traefik + will duplicate the traffic. + items: + description: MirrorService holds the mirror configuration. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: |- + Name defines the name of the referenced Kubernetes Service or TraefikService. + The differentiation between the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: |- + PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + percent: + description: |- + Percent defines the part of the traffic to mirror. + Supported values: 0 to 100. + type: integer + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: |- + FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. + A negative value means to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms + type: string + type: object + scheme: + description: |- + Scheme defines the scheme to use for the request to the upstream Kubernetes Service. + It defaults to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: |- + ServersTransport defines the name of ServersTransport resource to use. + It allows to configure the transport between Traefik and your servers. + Can only be used on a Kubernetes Service. + type: string + sticky: + description: |- + Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as JavaScript. + type: boolean + maxAge: + description: |- + MaxAge indicates the number of seconds until the cookie expires. + When set to a negative number, the cookie expires immediately. + When set to zero, the cookie never expires. + type: integer + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: |- + SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: |- + Strategy defines the load balancing strategy between the servers. + RoundRobin is the only supported value at the moment. + type: string + weight: + description: |- + Weight defines the weight and should only be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + name: + description: |- + Name defines the name of the referenced Kubernetes Service or TraefikService. + The differentiation between the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: |- + PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards the + response from the upstream Kubernetes Service to the client. + properties: + flushInterval: + description: |- + FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. + A negative value means to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms + type: string + type: object + scheme: + description: |- + Scheme defines the scheme to use for the request to the upstream Kubernetes Service. + It defaults to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: |- + ServersTransport defines the name of ServersTransport resource to use. + It allows to configure the transport between Traefik and your servers. + Can only be used on a Kubernetes Service. + type: string + sticky: + description: |- + Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can be + accessed by client-side APIs, such as JavaScript. + type: boolean + maxAge: + description: |- + MaxAge indicates the number of seconds until the cookie expires. + When set to a negative number, the cookie expires immediately. + When set to zero, the cookie never expires. + type: integer + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: |- + SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite + type: string + secure: + description: Secure defines whether the cookie can only + be transmitted over an encrypted connection (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: |- + Strategy defines the load balancing strategy between the servers. + RoundRobin is the only supported value at the moment. + type: string + weight: + description: |- + Weight defines the weight and should only be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + weighted: + description: Weighted defines the Weighted Round Robin configuration. + properties: + services: + description: Services defines the list of Kubernetes Service and/or + TraefikService to load-balance, with weight. + items: + description: Service defines an upstream HTTP service to proxy + traffic to. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: |- + Name defines the name of the referenced Kubernetes Service or TraefikService. + The differentiation between the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: |- + NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: |- + PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: |- + Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: |- + FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. + A negative value means to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms + type: string + type: object + scheme: + description: |- + Scheme defines the scheme to use for the request to the upstream Kubernetes Service. + It defaults to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: |- + ServersTransport defines the name of ServersTransport resource to use. + It allows to configure the transport between Traefik and your servers. + Can only be used on a Kubernetes Service. + type: string + sticky: + description: |- + Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as JavaScript. + type: boolean + maxAge: + description: |- + MaxAge indicates the number of seconds until the cookie expires. + When set to a negative number, the cookie expires immediately. + When set to zero, the cookie never expires. + type: integer + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: |- + SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: |- + Strategy defines the load balancing strategy between the servers. + RoundRobin is the only supported value at the moment. + type: string + weight: + description: |- + Weight defines the weight and should only be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + sticky: + description: |- + Sticky defines whether sticky sessions are enabled. + More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can be + accessed by client-side APIs, such as JavaScript. + type: boolean + maxAge: + description: |- + MaxAge indicates the number of seconds until the cookie expires. + When set to a negative number, the cookie expires immediately. + When set to zero, the cookie never expires. + type: integer + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: |- + SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite + type: string + secure: + description: Secure defines whether the cookie can only + be transmitted over an encrypted connection (i.e. HTTPS). + type: boolean + type: object + type: object + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true diff --git a/charts/traefik/crds/traefikservices.yaml b/charts/traefik/crds/traefikservices.yaml deleted file mode 100644 index 358fdc1..0000000 --- a/charts/traefik/crds/traefikservices.yaml +++ /dev/null @@ -1,381 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.2 - creationTimestamp: null - name: traefikservices.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TraefikService - listKind: TraefikServiceList - plural: traefikservices - singular: traefikservice - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: 'TraefikService is the CRD implementation of a Traefik Service. - TraefikService object allows to: - Apply weight to Services on load-balancing - - Mirror traffic on services More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#kind-traefikservice' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TraefikServiceSpec defines the desired state of a TraefikService. - properties: - mirroring: - description: Mirroring defines the Mirroring service configuration. - properties: - kind: - description: Kind defines the kind of the Service. - enum: - - Service - - TraefikService - type: string - maxBodySize: - description: MaxBodySize defines the maximum size allowed for - the body of the request. If the body is larger, the request - is not mirrored. Default value is -1, which means unlimited - size. - format: int64 - type: integer - mirrors: - description: Mirrors defines the list of mirrors where Traefik - will duplicate the traffic. - items: - description: MirrorService holds the mirror configuration. - properties: - kind: - description: Kind defines the kind of the Service. - enum: - - Service - - TraefikService - type: string - name: - description: Name defines the name of the referenced Kubernetes - Service or TraefikService. The differentiation between - the two is specified in the Kind field. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service or TraefikService. - type: string - passHostHeader: - description: PassHostHeader defines whether the client Host - header is forwarded to the upstream Kubernetes Service. - By default, passHostHeader is true. - type: boolean - percent: - description: 'Percent defines the part of the traffic to - mirror. Supported values: 0 to 100.' - type: integer - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. - This can be a reference to a named port. - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding defines how Traefik forwards - the response from the upstream Kubernetes Service to the - client. - properties: - flushInterval: - description: 'FlushInterval defines the interval, in - milliseconds, in between flushes to the client while - copying the response body. A negative value means - to flush immediately after each write to the client. - This configuration is ignored when ReverseProxy recognizes - a response as a streaming response; for such responses, - writes are flushed to the client immediately. Default: - 100ms' - type: string - type: object - scheme: - description: Scheme defines the scheme to use for the request - to the upstream Kubernetes Service. It defaults to https - when Kubernetes Service port is 443, http otherwise. - type: string - serversTransport: - description: ServersTransport defines the name of ServersTransport - resource to use. It allows to configure the transport - between Traefik and your servers. Can only be used on - a Kubernetes Service. - type: string - sticky: - description: 'Sticky defines the sticky sessions configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/services/#sticky-sessions' - properties: - cookie: - description: Cookie defines the sticky cookie configuration. - properties: - httpOnly: - description: HTTPOnly defines whether the cookie - can be accessed by client-side APIs, such as JavaScript. - type: boolean - name: - description: Name defines the Cookie name. - type: string - sameSite: - description: 'SameSite defines the same site policy. - More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' - type: string - secure: - description: Secure defines whether the cookie can - only be transmitted over an encrypted connection - (i.e. HTTPS). - type: boolean - type: object - type: object - strategy: - description: Strategy defines the load balancing strategy - between the servers. RoundRobin is the only supported - value at the moment. - type: string - weight: - description: Weight defines the weight and should only be - specified when Name references a TraefikService object - (and to be precise, one that embeds a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - name: - description: Name defines the name of the referenced Kubernetes - Service or TraefikService. The differentiation between the two - is specified in the Kind field. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service or TraefikService. - type: string - passHostHeader: - description: PassHostHeader defines whether the client Host header - is forwarded to the upstream Kubernetes Service. By default, - passHostHeader is true. - type: boolean - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. This - can be a reference to a named port. - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding defines how Traefik forwards the - response from the upstream Kubernetes Service to the client. - properties: - flushInterval: - description: 'FlushInterval defines the interval, in milliseconds, - in between flushes to the client while copying the response - body. A negative value means to flush immediately after - each write to the client. This configuration is ignored - when ReverseProxy recognizes a response as a streaming response; - for such responses, writes are flushed to the client immediately. - Default: 100ms' - type: string - type: object - scheme: - description: Scheme defines the scheme to use for the request - to the upstream Kubernetes Service. It defaults to https when - Kubernetes Service port is 443, http otherwise. - type: string - serversTransport: - description: ServersTransport defines the name of ServersTransport - resource to use. It allows to configure the transport between - Traefik and your servers. Can only be used on a Kubernetes Service. - type: string - sticky: - description: 'Sticky defines the sticky sessions configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/services/#sticky-sessions' - properties: - cookie: - description: Cookie defines the sticky cookie configuration. - properties: - httpOnly: - description: HTTPOnly defines whether the cookie can be - accessed by client-side APIs, such as JavaScript. - type: boolean - name: - description: Name defines the Cookie name. - type: string - sameSite: - description: 'SameSite defines the same site policy. More - info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' - type: string - secure: - description: Secure defines whether the cookie can only - be transmitted over an encrypted connection (i.e. HTTPS). - type: boolean - type: object - type: object - strategy: - description: Strategy defines the load balancing strategy between - the servers. RoundRobin is the only supported value at the moment. - type: string - weight: - description: Weight defines the weight and should only be specified - when Name references a TraefikService object (and to be precise, - one that embeds a Weighted Round Robin). - type: integer - required: - - name - type: object - weighted: - description: Weighted defines the Weighted Round Robin configuration. - properties: - services: - description: Services defines the list of Kubernetes Service and/or - TraefikService to load-balance, with weight. - items: - description: Service defines an upstream HTTP service to proxy - traffic to. - properties: - kind: - description: Kind defines the kind of the Service. - enum: - - Service - - TraefikService - type: string - name: - description: Name defines the name of the referenced Kubernetes - Service or TraefikService. The differentiation between - the two is specified in the Kind field. - type: string - namespace: - description: Namespace defines the namespace of the referenced - Kubernetes Service or TraefikService. - type: string - passHostHeader: - description: PassHostHeader defines whether the client Host - header is forwarded to the upstream Kubernetes Service. - By default, passHostHeader is true. - type: boolean - port: - anyOf: - - type: integer - - type: string - description: Port defines the port of a Kubernetes Service. - This can be a reference to a named port. - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding defines how Traefik forwards - the response from the upstream Kubernetes Service to the - client. - properties: - flushInterval: - description: 'FlushInterval defines the interval, in - milliseconds, in between flushes to the client while - copying the response body. A negative value means - to flush immediately after each write to the client. - This configuration is ignored when ReverseProxy recognizes - a response as a streaming response; for such responses, - writes are flushed to the client immediately. Default: - 100ms' - type: string - type: object - scheme: - description: Scheme defines the scheme to use for the request - to the upstream Kubernetes Service. It defaults to https - when Kubernetes Service port is 443, http otherwise. - type: string - serversTransport: - description: ServersTransport defines the name of ServersTransport - resource to use. It allows to configure the transport - between Traefik and your servers. Can only be used on - a Kubernetes Service. - type: string - sticky: - description: 'Sticky defines the sticky sessions configuration. - More info: https://doc.traefik.io/traefik/v2.9/routing/services/#sticky-sessions' - properties: - cookie: - description: Cookie defines the sticky cookie configuration. - properties: - httpOnly: - description: HTTPOnly defines whether the cookie - can be accessed by client-side APIs, such as JavaScript. - type: boolean - name: - description: Name defines the Cookie name. - type: string - sameSite: - description: 'SameSite defines the same site policy. - More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' - type: string - secure: - description: Secure defines whether the cookie can - only be transmitted over an encrypted connection - (i.e. HTTPS). - type: boolean - type: object - type: object - strategy: - description: Strategy defines the load balancing strategy - between the servers. RoundRobin is the only supported - value at the moment. - type: string - weight: - description: Weight defines the weight and should only be - specified when Name references a TraefikService object - (and to be precise, one that embeds a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - sticky: - description: 'Sticky defines whether sticky sessions are enabled. - More info: https://doc.traefik.io/traefik/v2.9/routing/providers/kubernetes-crd/#stickiness-and-load-balancing' - properties: - cookie: - description: Cookie defines the sticky cookie configuration. - properties: - httpOnly: - description: HTTPOnly defines whether the cookie can be - accessed by client-side APIs, such as JavaScript. - type: boolean - name: - description: Name defines the Cookie name. - type: string - sameSite: - description: 'SameSite defines the same site policy. More - info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' - type: string - secure: - description: Secure defines whether the cookie can only - be transmitted over an encrypted connection (i.e. HTTPS). - type: boolean - type: object - type: object - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: []