This manual explains how to migrate to using external Cloud Controller Managers for supported providers via UI.
The CCM (Cloud Controller Manager) is a Kubernetes control plane component that embeds cloud-specific control logic. There are two different kinds of Cloud controller managers: in-tree and out-of-tree. According to the Kubernetes design proposal, the in-tree code is “code that lives in the core Kubernetes repository k8s.io/kubernetes”, while the out-of-tree code is “code that lives in an external repository outside of k8s.io/kubernetes”.
The first cloud-specific interaction logic was completely in-tree, bringing in a not-negligible amount of problems, among which the dependency of the CCM release cycle from the Kubernetes core release cycle and the difficulty to add new providers to the Kubernetes core code. Then, the Kubernetes community moved toward the out-of-tree implementation by introducing a plugin mechanism that allows different cloud providers to integrate their platforms with Kubernetes.
To allow migration from in-tree to out-of-tree CCM for existing cluster, the cluster details view has been extended by a section in the top area, the “External CCM Migration Status”, that indicates the status of the CCM migration.
The “External CCM Migration Status” can have four different possible values:
The cluster already uses the external CCM.
KKP supports the external CCM for the given cloud provider, therefore the cluster can be migrated.
When clicking on this button, a windows pops up to confirm the migration.
External CCM migration has already been enabled for the given cluster, and the migration is in progress.
KKP does not support yet the external CCM for the given cloud provider.
Once the CCM migration has been enabled by clicking on the “Supported” button, the migration procedure will hang in
“In progress” status until all the
machineDeployments will be rolled out. To roll out a
machineDeployment get into
machineDeployment view and click on the circular arrow in the top right.
Then, you will be asked to confirm the restart operation.
Once all the
machineDeployments will be rolling restarted, the status will get into “Not needed” status to indicate
that there is no need for CCM migration.