-
Notifications
You must be signed in to change notification settings - Fork 73
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
Advertise Load Balancer IPs like External IPs #385
Conversation
b3945cb
to
4d000c9
Compare
@salanki thanks for the PR! I think we'll want to plumb through a new API field to enable / disable advertisement of these addresses. To do that, we'll want to add a new field to the BGPConfiguration API - likely called Once that is in, we can update this PR to import the new libcalico and only advertise loadbalancer IPs if they are within an allowed CIDR. What do you think? The main thing we want to do is enable users to control whether or not this feature is enabled, and if it is enabled which IP ranges are allowed to be advertised into the network by Calico. |
@caseydavenport: Sounds fair. I'll take a stab at it. |
It looks like this is using |
There's also the fact that AWS:
MetalLB:
|
Interesting. |
I think it will "work" as it is right now, but I don't think it's a complete implementation.
https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer |
@salanki have you had a chance to look at adding an API for this? If not, I may have some time to help with that part very soon. |
I've got a PR for the API bits here: projectcalico/libcalico-go#1349 |
Thank you @caseydavenport. I have been running the confd change in production (1,000 nodes, 100 |
This PR should probably be modified to match the new LB API. |
@gclawes link to what you are referring to? |
@caseydavenport's change in projectcalico/libcalico-go#1349 adds This PR uses |
Oh of course. I thought you meant something completely different (a new Kubernetes LB API) for some reason. |
@salanki FYI my PR in libcalico has been merged and the pin updated here in confd, so you should be able to pull it in to this PR now with a rebase. |
Thank you for bringing this home @caseydavenport! |
MetalLB can currently not be used with Calico as it sets a
LoadBalancer
Ingress IP instead of an External IP. By advertising Ingress IPs as well as External IPs MetalLB can work with Calico without additional BGP peers.The linked issue suggests enabling this functionality with a config flag. I'm happy to implement that with some pointers on how to add one.
Tested in production. A
calico-node
image based on 3.16 can be pulled at:salanki/calico:node-advertiselb
Fixes: https://github.com/projectcalico/confd/issues/301
Fixes: metallb/metallb#114