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

Add Cilium as a Overlay Network #462

Closed
Tracked by #6116
mmack opened this issue May 23, 2019 · 22 comments · Fixed by #1560
Closed
Tracked by #6116

Add Cilium as a Overlay Network #462

mmack opened this issue May 23, 2019 · 22 comments · Fixed by #1560
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/normal Not that urgent, but is important sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management.
Milestone

Comments

@mmack
Copy link

mmack commented May 23, 2019

What feature would you like to be added?
Cilium as a overlay

What are use cases of the feature?
Cilium has lot of benefits over a calico / kube-proxy setup, described in detail here: https://cilium.readthedocs.io/en/stable/intro/.
For me the 3 outstanding features are:

  • FQDN support for networkpolicies
  • BPF Support
  • Removal of kube-proxy and iptables
  • Much better monitoring / insights
@mmack mmack added the kind/feature Categorizes issue or PR as related to a new feature. label May 23, 2019
@xmudrii xmudrii added this to the Someday milestone May 31, 2019
@xmudrii xmudrii added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Jul 1, 2019
@kubermatic-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
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 Sep 29, 2019
@xmudrii
Copy link
Member

xmudrii commented Sep 30, 2019

/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 Sep 30, 2019
@kubermatic-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
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 Dec 29, 2019
@kron4eg
Copy link
Member

kron4eg commented Apr 27, 2020

There was added "external" CNI support added, so any CNI plugin can be installed

more info: #862

@kron4eg kron4eg closed this as completed Apr 27, 2020
@shibumi
Copy link
Contributor

shibumi commented Feb 15, 2021

Sad, that cilium isn't included in the plugins that can be directly integrated via kubeone.

@kron4eg
Copy link
Member

kron4eg commented Feb 15, 2021

@shibumi we will accept the PR with cilium addon ;)

@shibumi
Copy link
Contributor

shibumi commented Feb 15, 2021

@kron4eg ah ok. So you are open for a possible cilium addon? Will have a look on this maybe. The Canal part doesn't look that complicated. If I read this correctly you are just composing the canal deployment directly via the Kubernetes API, right? So everything what I would need to do is:

  • Reading the YAML files for bootstrapping Cilium
  • Writing the necessary Go/Kubernetes-Client Code for the deployment
  • Make things dynamic that we can pass variables to the deployment.

Is this correct?

@kron4eg
Copy link
Member

kron4eg commented Feb 15, 2021

@shibumi while yes we are open, I meant "addons" mechanism.

Existing example would be Calico VXLAN addon. So no Go code is necessary.

@ag1989
Copy link

ag1989 commented Feb 15, 2021

@shibumi would be very nice to see this feature in KubeOne :)

@shibumi
Copy link
Contributor

shibumi commented Feb 15, 2021

@kron4eg this sounds even easier than the Go code.

@kron4eg
Copy link
Member

kron4eg commented Feb 15, 2021

OK then I'll reopen this back.

@kron4eg kron4eg reopened this Feb 15, 2021
@cedi
Copy link
Contributor

cedi commented Feb 17, 2021

@shibumi can you ping me in the CNCF Slack? I'm also very interested in Cilium in KubeOne/Kubermatic.
Maybe we can do this together

@xmudrii
Copy link
Member

xmudrii commented Feb 17, 2021

/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 Feb 17, 2021
@shibumi
Copy link
Contributor

shibumi commented Feb 17, 2021

@cedi sure, it shouldn't be that complicated. It's really just adding the cilium YAML to the addon directory + adding some Go templating and tests I guess. Or am I missing something?

@cedi
Copy link
Contributor

cedi commented Feb 21, 2021

I'll demo implemented cilium in a fork of KubeOne: https://github.com/cedi/kubeone/tree/add_cilium_cni
It's a work in progress but hints/tips, recommendations, improvements, etc. are very welcome.

@kron4eg I know you suggested to use the yaml-way in combination with the cni.external, however I currently have a rather boring weekend with nothing else to do, so I wen't all in and implemented cilium directly into KubeOne so I can use cni.cilium natively :-) Was a kinda fun exercise :)

@kron4eg
Copy link
Member

kron4eg commented Feb 21, 2021

The reason why I was suggesting addon in form of YAML is: we plan to move even more in-go-manifests to YAML addons. We want this to avoid maintaining this in Go form, and to give people opportunity to customize stuff if they are willing to do so.

@kron4eg
Copy link
Member

kron4eg commented Feb 21, 2021

With release of Go 1.16 and its new io.Fs interface and emed package we will ship some "default addons" right with binary itself, of course with maintaining ability to customize them.

@kron4eg
Copy link
Member

kron4eg commented Feb 21, 2021

Our candidate packages "to-move-to-yaml" list for now is:

  • canal
  • weave
  • externalccm
  • metricsserver
  • machinecontroller

Maybe we will change something in this list, but most likely not. Anyway, the more code is expressed in form of addons the better — since it gives users opportunity to customize monifests (e.g. upgrade components without waiting for the next kubeone upgrade)

@shibumi
Copy link
Contributor

shibumi commented Feb 21, 2021

@kron4eg would have been nice to read about such plans in a roadmap :)

@cedi
Copy link
Contributor

cedi commented Feb 22, 2021

We want this to avoid maintaining this in Go form, and to give people opportunity to customize stuff if they are willing to do so.

Yeah, I totally get your point. I mean I converted the YAML to the right Go-Structs. It's really PITA. So I'll get your point and fully agree.

As I said before: I have no hard feelings regarding the Go implementation. It was a nice proof of concept for me to get a bit more into the internals of KubeOne and I had some nice learnings. So don't worry :)

With release of Go 1.16 and its new io.Fs interface and emed package we will ship some "default addons" right with binary itself, of course with maintaining ability to customize them.

This sounds great!
Do you have a roadmap for that or could you point me to the right issues regarding that implementation.
I consider helping you on that a little in my spare time.

@kron4eg
Copy link
Member

kron4eg commented Feb 22, 2021

This want-to-move of internal go package to external YAML addons is just a sporadic idea inspired by the Go 1.16 release notes :D There is no official plan, and even an issue to start implementing this.

@kron4eg
Copy link
Member

kron4eg commented Feb 26, 2021

here's #1254 umbrella issue for this addons migration.

@xmudrii xmudrii added the sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. label Mar 9, 2021
@mate4st mate4st self-assigned this Sep 27, 2021
@xmudrii xmudrii added priority/normal Not that urgent, but is important and removed help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. labels Sep 29, 2021
@xmudrii xmudrii modified the milestones: Someday, KubeOne 1.4 Sep 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/normal Not that urgent, but is important sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants