2024-06-21 12:56:03 +00:00
---
title: "Traefik Migration Documentation"
description: "Learn the steps needed to migrate to new Traefik Proxy v3 versions. Read the technical documentation."
---
# Migration: Steps needed between the versions
## v3.0 to v3.1
### Kubernetes Provider RBACs
Starting with v3.1, the Kubernetes Providers now use the [EndpointSlices API ](https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/ ) (Kubernetes >=v1.21) to discover service endpoint addresses.
2024-08-01 13:50:04 +00:00
It also brings NodePort load-balancing which requires Nodes resources lookup.
2024-06-21 12:56:03 +00:00
2024-08-01 13:50:04 +00:00
Therefore, in the corresponding RBACs (see [KubernetesIngress ](../routing/providers/kubernetes-ingress.md#configuration-example ), [KubernetesCRD ](../reference/dynamic-configuration/kubernetes-crd.md#rbac ), and [KubernetesGateway ](../reference/dynamic-configuration/kubernetes-gateway-rbac.yml ) provider RBACs):
- the `endpoints` right has to be removed and the following `endpointslices` right has to be added:
2024-06-21 12:56:03 +00:00
```yaml
...
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- list
- watch
...
```
2024-06-24 08:36:03 +00:00
2024-08-01 13:50:04 +00:00
- the `nodes` right has to be added:
```yaml
...
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
- watch
...
```
2024-06-24 08:36:03 +00:00
#### Gateway API: KubernetesGateway Provider
In v3.1, the KubernetesGateway Provider is no longer an experimental feature.
It can be enabled without the associated `experimental.kubernetesgateway` option, which is now deprecated.
??? example "An example of the experimental `kubernetesgateway` option"
```yaml tab="File (YAML)"
experimental:
kubernetesgateway: true
```
```toml tab="File (TOML)"
[experimental]
kubernetesgateway=true
```
```bash tab="CLI"
--experimental.kubernetesgateway=true
```
##### Remediation
The `kubernetesgateway` option should be removed from the experimental section of the static configuration.
To configure `kubernetesgateway` , please check out the [KubernetesGateway Provider documentation ](../providers/kubernetes-gateway.md ).
2024-08-01 13:50:04 +00:00
## v3.1.0 to v3.1.1
### IngressClass Lookup
The Kubernetes Ingress provider option `disableIngressClassLookup` has been deprecated in v3.1.1, and will be removed in the next major version.
Please use the `disableClusterScopeResources` option instead to avoid cluster scope resources discovery (IngressClass, Nodes).
2024-08-30 08:36:06 +00:00
## v3.1 to v3.2
2024-10-07 07:54:04 +00:00
### Kubernetes CRD Provider
Starting with v3.2, the CRDs has been updated on [TraefikService ](../routing/services#mirroring-service ) (PR [#11032 ](https://github.com/traefik/traefik/pull/11032 )) and on [RateLimit ](../middlewares/http/ratelimit ) & [InFlightReq ](../middlewares/http/inflightreq ) middlewares (PR [#9747 ](https://github.com/traefik/traefik/pull/9747 )).
This update adds only new optional fields.
CRDs can be updated with this command:
```shell
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.2/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
```
2024-09-26 07:12:04 +00:00
### Kubernetes Gateway Provider Standard Channel
2024-08-30 08:36:06 +00:00
Starting with v3.2, the Kubernetes Gateway Provider now supports [GRPCRoute ](https://gateway-api.sigs.k8s.io/api-types/grpcroute/ ).
Therefore, in the corresponding RBACs (see [KubernetesGateway ](../reference/dynamic-configuration/kubernetes-gateway.md#rbac ) provider RBACs),
the `grcroutes` and `grpcroutes/status` rights have to be added.
```yaml
...
- apiGroups:
- gateway.networking.k8s.io
resources:
- grpcroutes
verbs:
- get
- list
- watch
- apiGroups:
- gateway.networking.k8s.io
resources:
- grpcroutes/status
verbs:
- update
...
```
2024-09-26 07:12:04 +00:00
### Kubernetes Gateway Provider Experimental Channel
!!! warning "Breaking changes"
Because of a breaking change introduced in Kubernetes Gateway [v1.2.0-rc1 ](https://github.com/kubernetes-sigs/gateway-api/releases/tag/v1.2.0-rc1 ),
Traefik v3.2 only supports Kubernetes Gateway v1.2.x when experimental channel features are enabled.
Starting with v3.2, the Kubernetes Gateway Provider now supports [BackendTLSPolicy ](https://gateway-api.sigs.k8s.io/api-types/backendtlspolicy/ ).
Therefore, in the corresponding RBACs (see [KubernetesGateway ](../reference/dynamic-configuration/kubernetes-gateway.md#rbac ) provider RBACs),
2024-10-11 10:10:04 +00:00
the `configmaps` , `backendtlspolicies` and `backendtlspolicies/status` rights have to be added.
2024-09-26 07:12:04 +00:00
```yaml
...
2024-10-11 10:10:04 +00:00
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
2024-09-26 07:12:04 +00:00
- apiGroups:
- gateway.networking.k8s.io
resources:
- backendtlspolicies
verbs:
- get
- list
- watch
- apiGroups:
- gateway.networking.k8s.io
resources:
- backendtlspolicies/status
verbs:
- update
...
```