-
-
Notifications
You must be signed in to change notification settings - Fork 282
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
feat(talos): Add cilium bgpControlPlane support and CNI security settings #1296
Conversation
Previously validation was present to ensure the following
|
Needed a couple patches to the bgp peering policy to ensure LB IPs were advertised to the router. This worked once the serviceSelector example from cilium was added.
|
Nice work! I'm certain this config would work with k3s too but I'm not sure where to put the config. I'm still struggling with being happy with the config file in general so this can be iterated on in the future. |
Maybe having a top level cilium config dict would work to put these values under, or maybe under the cluster or nodes config dict. I'm open to ideas any way to improve the config file and the options because no matter what I think of the options get messy and intertwined. Maybe I just go back to a flat config instead of a structured one. |
bootstrap/templates/partials/cilium-values-init.partial.yaml.j2
Outdated
Show resolved
Hide resolved
bootstrap/templates/partials/cilium-values-full.partial.yaml.j2
Outdated
Show resolved
Hide resolved
bootstrap/templates/partials/cilium-values-full.partial.yaml.j2
Outdated
Show resolved
Hide resolved
bootstrap/templates/partials/cilium-values-init.partial.yaml.j2
Outdated
Show resolved
Hide resolved
I confirmed those cilium changes work on k3s too. I might change the config vars in the future, but this is good for now. Thanks! |
When using VLAN network separation, Cilium's L2 announcements may not traverse the L2 network segments. When this is the case, it can help to have Cilium switch to BGP control plane mode and handle advertising the LoadBalancer IPs via a router instead. This requires a router with BGP support such as pfSense with the FRR package installed (or similar).
In this PR I am re-using the existing
CiliumLoadBalancerIPPool
from cilium-l2.yaml named "pool". Since this switches from L2 announcements to BGP, their is no conflict andmulti-pool
IPAM is not required to support both simultaneously. The "LOADBALANCER_CIDR" cluster-wide var is used for tracking this.The bgp settings maybe movable in the future to outside the talos dict to be used by kube-vip if cilium CNI is not in use.
The
cilium-values-init
andcilium-values-full
partials templates we're also not using some of the Talos required settings from their Cilium CNI install guide. These have been added when the talos distribution is set.Example config.yaml