diff --git a/docs/content/deprecation/features.md b/docs/content/deprecation/features.md index f74a0bd2d..c5f0f2dfe 100644 --- a/docs/content/deprecation/features.md +++ b/docs/content/deprecation/features.md @@ -6,6 +6,7 @@ This page is maintained and updated periodically to reflect our roadmap and any |----------------------------------------------------------------------------------------------------------------------|------------|----------------|---------| | [Kubernetes CRDs API Version `traefik.io/v1alpha1`](#kubernetes-crds-api-version-traefikiov1alpha1) | N/A | N/A | 3.0 | | [Kubernetes Ingress API Version `networking.k8s.io/v1beta1`](#kubernetes-ingress-api-version-networkingk8siov1beta1) | N/A | N/A | 3.0 | +| [CRD API Version `apiextensions.k8s.io/v1beta1`](#kubernetes-ingress-api-version-networkingk8siov1beta1) | N/A | N/A | 3.0 | ## Impact @@ -16,3 +17,7 @@ The newly introduced Kubernetes CRD API Version `traefik.io/v1alpha1` will subse ### Kubernetes Ingress API Version `networking.k8s.io/v1beta1` The Kubernetes Ingress API Version `networking.k8s.io/v1beta1` is removed in v3. Please use the API Group `networking.k8s.io/v1` instead. + +### Traefik CRD API Version `apiextensions.k8s.io/v1beta1` + +The Traefik CRD API Version `apiextensions.k8s.io/v1beta1` is removed in v3. Please use the API Group `apiextensions.k8s.io/v1` instead. diff --git a/docs/content/includes/kubernetes-requirements.md b/docs/content/includes/kubernetes-requirements.md new file mode 100644 index 000000000..437fc7382 --- /dev/null +++ b/docs/content/includes/kubernetes-requirements.md @@ -0,0 +1,3 @@ +Traefik follows the [Kubernetes support policy](https://kubernetes.io/releases/version-skew-policy/#supported-versions), +and supports at least the latest three minor versions of Kubernetes. +General functionality cannot be guaranteed for versions older than that. diff --git a/docs/content/middlewares/http/overview.md b/docs/content/middlewares/http/overview.md index 17b2ab1cf..96ba29e74 100644 --- a/docs/content/middlewares/http/overview.md +++ b/docs/content/middlewares/http/overview.md @@ -26,19 +26,6 @@ whoami: ```yaml tab="Kubernetes IngressRoute" # As a Kubernetes Traefik IngressRoute -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: middlewares.traefik.io -spec: - group: traefik.io - version: v1alpha1 - names: - kind: Middleware - plural: middlewares - singular: middleware - scope: Namespaced - --- apiVersion: traefik.io/v1alpha1 kind: Middleware diff --git a/docs/content/middlewares/tcp/overview.md b/docs/content/middlewares/tcp/overview.md index 5572160cb..4b461d3ba 100644 --- a/docs/content/middlewares/tcp/overview.md +++ b/docs/content/middlewares/tcp/overview.md @@ -26,19 +26,6 @@ whoami: ```yaml tab="Kubernetes IngressRoute" # As a Kubernetes Traefik IngressRoute -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: middlewaretcps.traefik.io -spec: - group: traefik.io - version: v1alpha1 - names: - kind: MiddlewareTCP - plural: middlewaretcps - singular: middlewaretcp - scope: Namespaced - --- apiVersion: traefik.io/v1alpha1 kind: MiddlewareTCP diff --git a/docs/content/migration/v2-to-v3.md b/docs/content/migration/v2-to-v3.md index 1f5f0de46..b4cf1bafd 100644 --- a/docs/content/migration/v2-to-v3.md +++ b/docs/content/migration/v2-to-v3.md @@ -97,7 +97,12 @@ In v3, the provider Docker has been split into 2 providers: ### Kubernetes Ingress API Group `networking.k8s.io/v1beta1` -As v3 is targeting support for Kubernetes v1.23+, -the Kubernetes Ingress API Group `networking.k8s.io/v1beta1` ([removed since Kubernetes v1.22](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122)) support has been removed. +In v3, the Kubernetes Ingress API Group `networking.k8s.io/v1beta1` ([removed since Kubernetes v1.22](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122)) support has been removed. Please use the API Group `networking.k8s.io/v1` instead. + +### Traefik CRD API Version `apiextensions.k8s.io/v1beta1` + +In v3, the Traefik CRD API Version `apiextensions.k8s.io/v1beta1` ([removed since Kubernetes v1.22](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#customresourcedefinition-v122)) support has been removed. + +Please use the CRD definition with the API Version `apiextensions.k8s.io/v1` instead. diff --git a/docs/content/providers/kubernetes-crd.md b/docs/content/providers/kubernetes-crd.md index 737213713..f39f89605 100644 --- a/docs/content/providers/kubernetes-crd.md +++ b/docs/content/providers/kubernetes-crd.md @@ -14,7 +14,9 @@ However, as the community expressed the need to benefit from Traefik features wi the Traefik engineering team developed a [Custom Resource Definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) (CRD) for an IngressRoute type, defined below, in order to provide a better way to configure access to a Kubernetes cluster. -## Configuration Requirements +## Requirements + +{!kubernetes-requirements.md!} !!! tip "All Steps for a Successful Deployment" @@ -25,12 +27,6 @@ the Traefik engineering team developed a [Custom Resource Definition](https://ku * Apply the needed kubernetesCRD provider [configuration](#provider-configuration) * Add all necessary Traefik custom [resources](../reference/dynamic-configuration/kubernetes-crd.md#resources) -!!! warning "Deprecated apiextensions.k8s.io/v1beta1 CRD" - - The `apiextensions.k8s.io/v1beta1` CustomResourceDefinition is deprecated in Kubernetes `v1.16+` and will be removed in `v1.22+`. - - For Kubernetes `v1.16+`, please use the Traefik `apiextensions.k8s.io/v1` CRDs instead. - !!! example "Installing Resource Definition and RBAC" ```bash diff --git a/docs/content/providers/kubernetes-gateway.md b/docs/content/providers/kubernetes-gateway.md index 809e5630a..e8fc7b133 100644 --- a/docs/content/providers/kubernetes-gateway.md +++ b/docs/content/providers/kubernetes-gateway.md @@ -41,7 +41,9 @@ This provider is proposed as an experimental feature and partially supports the --experimental.kubernetesgateway=true --providers.kubernetesgateway=true #... ``` -## Configuration Requirements +## Requirements + +{!kubernetes-requirements.md!} !!! tip "All Steps for a Successful Deployment" diff --git a/docs/content/providers/kubernetes-ingress.md b/docs/content/providers/kubernetes-ingress.md index 9a13a0a7d..8f03d3317 100644 --- a/docs/content/providers/kubernetes-ingress.md +++ b/docs/content/providers/kubernetes-ingress.md @@ -13,7 +13,7 @@ it manages access to cluster services by supporting the [Ingress](https://kubern ## Requirements -Traefik supports `1.23+` Kubernetes clusters. +{!kubernetes-requirements.md!} ## Routing Configuration diff --git a/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1beta1.yml b/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1beta1.yml deleted file mode 100644 index 4fb320d42..000000000 --- a/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1beta1.yml +++ /dev/null @@ -1,133 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: ingressroutes.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: IngressRoute - plural: ingressroutes - singular: ingressroute - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: middlewares.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: Middleware - plural: middlewares - singular: middleware - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: middlewaretcps.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: MiddlewareTCP - plural: middlewaretcps - singular: middlewaretcp - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: ingressroutetcps.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: IngressRouteTCP - plural: ingressroutetcps - singular: ingressroutetcp - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: ingressrouteudps.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: IngressRouteUDP - plural: ingressrouteudps - singular: ingressrouteudp - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: tlsoptions.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: TLSOption - plural: tlsoptions - singular: tlsoption - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: tlsstores.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: TLSStore - plural: tlsstores - singular: tlsstore - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: traefikservices.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: TraefikService - plural: traefikservices - singular: traefikservice - scope: Namespaced - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: serverstransports.traefik.io - -spec: - group: traefik.io - version: v1alpha1 - names: - kind: ServersTransport - plural: serverstransports - singular: serverstransport - scope: Namespaced diff --git a/docs/content/reference/dynamic-configuration/kubernetes-crd.md b/docs/content/reference/dynamic-configuration/kubernetes-crd.md index 5519ad0f5..ba7c6e56e 100644 --- a/docs/content/reference/dynamic-configuration/kubernetes-crd.md +++ b/docs/content/reference/dynamic-configuration/kubernetes-crd.md @@ -8,22 +8,12 @@ description: "Learn about the definitions, resources, and RBAC of dynamic config Dynamic configuration with Kubernetes Custom Resource {: .subtitle } -!!! warning "Deprecated apiextensions.k8s.io/v1beta1 CRD" - - The `apiextensions.k8s.io/v1beta1` CustomResourceDefinition is deprecated in Kubernetes `v1.16+` and will be removed in `v1.22+`. - - For Kubernetes `v1.16+`, please use the Traefik `apiextensions.k8s.io/v1` CRDs instead. - ## Definitions ```yaml tab="apiextensions.k8s.io/v1 (Kubernetes v1.16+)" --8<-- "content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml" ``` -```yaml tab="apiextensions.k8s.io/v1beta1 (Deprecated)" ---8<-- "content/reference/dynamic-configuration/kubernetes-crd-definition-v1beta1.yml" -``` - ## Resources ```yaml diff --git a/docs/content/routing/providers/kubernetes-crd.md b/docs/content/routing/providers/kubernetes-crd.md index c11c61385..e2f5574f9 100644 --- a/docs/content/routing/providers/kubernetes-crd.md +++ b/docs/content/routing/providers/kubernetes-crd.md @@ -290,7 +290,7 @@ The Kubernetes Ingress Controller, The Custom Resource Way. ### Custom Resource Definition (CRD) * You can find an exhaustive list, generated from Traefik's source code, of the custom resources and their attributes in [the reference page](../../reference/dynamic-configuration/kubernetes-crd.md). -* Validate that [the prerequisites](../../providers/kubernetes-crd.md#configuration-requirements) are fulfilled before using the Traefik custom resources. +* Validate that [the prerequisites](../../providers/kubernetes-crd.md#requirements) are fulfilled before using the Traefik custom resources. * Traefik CRDs are building blocks that you can assemble according to your needs. You can find an excerpt of the available custom resources in the table below: diff --git a/docs/content/routing/providers/kubernetes-gateway.md b/docs/content/routing/providers/kubernetes-gateway.md index 09d0b607b..9ca76c4db 100644 --- a/docs/content/routing/providers/kubernetes-gateway.md +++ b/docs/content/routing/providers/kubernetes-gateway.md @@ -34,7 +34,7 @@ The Kubernetes Gateway API, The Experimental Way. {: .subtitle } * You can find an exhaustive list, of the custom resources and their attributes in [the reference page](../../reference/dynamic-configuration/kubernetes-gateway.md) or in the Kubernetes Sigs `Gateway API` [repository](https://github.com/kubernetes-sigs/gateway-api). -* Validate that [the prerequisites](../../providers/kubernetes-gateway.md#configuration-requirements) are fulfilled +* Validate that [the prerequisites](../../providers/kubernetes-gateway.md#requirements) are fulfilled before using the Traefik Kubernetes Gateway Provider. You can find an excerpt of the supported Kubernetes Gateway API resources in the table below: