--- 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. It also brings NodePort load-balancing which requires Nodes resources lookup. 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: ```yaml ... - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch ... ``` - the `nodes` right has to be added: ```yaml ... - apiGroups: - "" resources: - nodes verbs: - get - list - watch ... ``` #### 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). ## 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). ## v3.1 to v3.2 ### Kubernetes Gateway Provider RBACs 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 ... ```