Skip to content
This repository has been archived by the owner on May 22, 2020. It is now read-only.

Allow other CNI providers to be installed #635

Closed
rsdcastro opened this issue Mar 3, 2018 · 8 comments
Closed

Allow other CNI providers to be installed #635

rsdcastro opened this issue Mar 3, 2018 · 8 comments
Labels
cluster-api help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
Milestone

Comments

@rsdcastro
Copy link

Currently CNI provider isn't specified in the API, and the GCP implementation has support for weavenet. This issue tracks API updates to support other CNI providers.

https://github.com/kubernetes/kube-deploy/blob/master/cluster-api/api/cluster/v1alpha1/types.go#L327

@rsdcastro rsdcastro added this to the cluster-api-alpha milestone Mar 3, 2018
@rsdcastro rsdcastro added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Mar 3, 2018
@mrIncompetent
Copy link
Contributor

Do we really want to have this in the API?
The User could deploy whatever CNI provider he wants via a Daemonset

@rsdcastro
Copy link
Author

For a fully functional cluster, we need to have a CNI provider installed, right? This is being done in the current GCP provider code and it's also in the kubeadm documentation.

My idea is that if we'll deliver a fully functional cluster to the cluster and will install a CNI provider as part of that, then we should allow the customer to specify a different one (as the hard-coded one might not work).

Let me know your thoughts and please feel free to correct me.

@mrIncompetent
Copy link
Contributor

Maybe something like an add-on manager might be suitable here?
@chrislovecnm I never actually had the time to play around with the Kops add-on manager, you see options implementing it here?

As i assume by now most/every CNI provider nowadays can be installed using a Daemonset.
Kubedns/coredns could be installed the same way.

@rsdcastro
Copy link
Author

That is fair. CNI would be technically one of the "essential add-ons" that are needed to have a fully functional cluster. Some of the essential add-ons (kube-dns and kube-proxy) are installed by kubeadm, but the remaining (at least CNI provider) could be installed via cluster API.

We're starting to do work on what a long-term add-ons management solution would look like and even picked @justinsb's brain last week on that.

If we don't do anything special in the cluster API for CNI (which is reasonable after this discussion), we may need to accelerate that work to have more CNIs available to customers as part of the cluster API.

@roberthbailey
Copy link
Contributor

We will want to install kube-proxy and kube-dns as addons as well (the current kube-proxy mechanism is a bit of a hack) and CNI should fit into that model. In the mean time, I think it's ok to say that the provider can dictate the CNI provider installed into the cluster, and if we want to make it configurable we can do so inside of the provider config.

@chrislovecnm
Copy link
Contributor

Kinda concerned that we are wandering into addons land. Are these addons? Maybe I am missing something but how is stuff like kube-dns part of the machine api?

If those those components are addons, which IMO is part of the installers responsibility. Eventually I hope we have an addon manager.

The only component that has to be installed is cni or kubenet, but I think that is the installer as well not the machine API

@rsdcastro
Copy link
Author

Kamino closed and cloned this issue to kubernetes-sigs/cluster-api

@rsdcastro
Copy link
Author

This issue was moved to kubernetes-sigs/cluster-api#8

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cluster-api help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
Projects
None yet
Development

No branches or pull requests

5 participants