Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to external cloud controller managers for providers with in-tree implementation #616

Closed
6 tasks
xmudrii opened this issue Aug 5, 2019 · 6 comments
Closed
6 tasks
Assignees
Labels
Epic kind/feature Categorizes issue or PR as related to a new feature. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management.
Milestone

Comments

@xmudrii
Copy link
Member

xmudrii commented Aug 5, 2019

Kubernetes has announced the removal of in-tree cloud controller managers (CCMs) from the code base and migrating to the external CCMs for all providers.

More details can be found in the following KEP kubernetes/enhancements#669

It's unclear when the in-tree implementations will be removed and replaced with external, but we can assume not before 1.17.

Decision/research items:

  • Find out what's the timeline and when we need to/can switch to external implementations
    • Most providers have external implementations by now, but many of them are not stable or don't have any release.
      • OpenStack has several releases, vSphere two beta releases, and Azure has 2 alpha releases.
      • Others providers still don't have releases or are tight with the in-tree implementations
      • Eventually we should only switch if there are (more) stable implementations (e.g. at least a beta release)
  • Find out the version compatibility for each external CCM
    • It seems like various CCMs can have different release cycles. We should find out the version compatibility between CCMs and Kubernetes.
    • It may happen that some external CCMs support only newer k8s versions, so we would have to switch between in-tree and external implementations depending on the version.
  • Decide how do we want to handle the switch to external CCMs
    • Should we automatically use the external CCM if it is supported or should it be up to the user

Once we decide to switch to external CCMs, we need to:

  • Refactor how we handle CCMs
    • Currently, we have the InTreeCloudProvider() function that we use to find out should components be configured to work with the in-tree provider, external provider, or no provider.
    • This is not anymore the case, as in-tree providers have their external implementations
    • This is required, so we pass correct flags to kubelet and other components.
  • Add manifests for external CCMs
  • Find out how are we going to handle cluster upgrades and what are we going to do with CCMs in that case
@xmudrii xmudrii added the Epic label Aug 5, 2019
@xmudrii
Copy link
Member Author

xmudrii commented Aug 5, 2019

The upstream will start building Kubernetes without in-tree CCMs for testing purposes as of 1.16. More details can be found in the following KEP kubernetes/enhancements#1179

@xmudrii
Copy link
Member Author

xmudrii commented Aug 5, 2019

#615 is going to migrate OpenStack to the external implementation.

@kubermatic-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
After a furter 30 days, they will turn rotten.
Mark the issue as fresh with /remove-lifecycle stale.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@kubermatic-bot kubermatic-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 22, 2020
@kron4eg
Copy link
Member

kron4eg commented Nov 22, 2020

/remove-lifecycle stale

@kubermatic-bot kubermatic-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 22, 2020
@xmudrii xmudrii removed their assignment Dec 15, 2020
@kron4eg kron4eg added sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. and removed team/lifecycle labels Jan 15, 2021
@xmudrii xmudrii added the kind/feature Categorizes issue or PR as related to a new feature. label Jan 20, 2021
@kron4eg

This comment has been minimized.

@shaase-ctrl
Copy link

/reopen

@shaase-ctrl shaase-ctrl reopened this May 19, 2021
@shaase-ctrl shaase-ctrl assigned mlavacca and unassigned mlavacca Jun 10, 2021
@shaase-ctrl shaase-ctrl modified the milestones: v1.1, KKP 2.18 Jul 25, 2021
@kron4eg kron4eg assigned kron4eg and unassigned imharshita Jul 26, 2021
@kron4eg kron4eg closed this as completed Aug 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic kind/feature Categorizes issue or PR as related to a new feature. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management.
Projects
None yet
Development

No branches or pull requests

8 participants