Kubernetes v1.29 requires the use of external components for cloud integration. Legacy cloud provider integrations have been removed, but can be temporarily enabled.
These changes stem from KEP-2395, which aims to externalize cloud provider integrations for consistency and separation of concerns.
Two feature gates, DisableCloudProviders and DisableKubeletCloudCredentialProviders, now default to true, preventing the use of legacy cloud integrations.
Users who have upgraded from Kubernetes 1.28+ and are not using Azure, GCE, or vSphere do not need to make changes.
For Azure, GCE, or vSphere users, or those upgrading from older versions, two options exist: migrate to external cloud controller managers or continue using in-tree provider code.
Migration to external cloud controller managers is recommended, but continuing with in-tree code is possible by disabling the relevant feature gates.
Note that these feature gates will be locked to true in a future release, making migration to external cloud controller managers essential.
For providers other than Azure, GCE, or vSphere, external cloud controller managers should already be in use.
Cloud controller managers can be found at GitHub repositories, with a reference framework available for developers.
The Cloud Provider Special Interest Group (SIG) provides support and resources for cloud provider integration in Kubernetes.
kubernetes.io
kubernetes.io
