-
Notifications
You must be signed in to change notification settings - Fork 3k
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
bgpv2: Adding preflight and neighbor reconcilers using CiliumBGPNodeConfig CRD. #30108
bgpv2: Adding preflight and neighbor reconcilers using CiliumBGPNodeConfig CRD. #30108
Conversation
9a52d0e
to
aaed377
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I have some non-critical comments, but overall the approach makes sense to me.
aaed377
to
6909d7d
Compare
/test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay 🙇
Made an initial review. Thanks for working on this!
921387b
to
de3abe0
Compare
Thanks @YutaroHayakawa for the review. I think all of them are addressed. One significant change is new logger package under bgpv1/, I think it makes sense to put all the k/v variables in one place so logging is consistent across BGP sub-system. Let me know if this makes sense. cc @rastislavs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did a second review. Thanks for the fix!
b934469
to
4ccdda7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did a third review. I added a comment for the issue I found while I was working for this PR #30382.
Since we derived new reconcilers from the v1 reconciler, it obviously contains these issues we had in the bgpv1. I started to wonder how much of the issue we want to solve in this PR.
One option is, we only fix "critical" issues and let rest of the fixes to go into the follow-up if we can do that later. The cons of this approach is it is very easy to deprioritize the follow-up once this feature starts to "work". In that sense, we should solve any concern in this PR. WDYT?
Introducing preflight and neighbor reconciler using CiliumBGPNodeConfig and CiliumBGPPeerConfig resources. Reconcilers are added in reconcilerv2 pkg. Preflight reconciler is used to create, delete and update BGP instances. It differs from BGPv1 preflight reconciler. It overrides RouterID and listening port from CiliumBGPNodeConfig, if they are set. Neighbor reconciler is used to create, delete and update BGP peer configuration per instance. It differs from BGPv1 reconciler in terms to metadata storage and how peer configuration is created. In case of v2 reconcilers, peer configuration is fetched from CiliumBGPPeerConfig CRD resource. These reconcilers will need to be registered with BGP cell, this will be done in future changes. Signed-off-by: harsimran pabla <[email protected]>
6bdea43
to
ce0c626
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is my last review 🙏
ce0c626
to
4efe1d7
Compare
This change introduces new API ReconcileInstances to BGPRouteManager. This API will be called by controller when BGPv2 is enabled and reconciliation is triggered. New BGPv2 equivalent methods are added to workdiff and BGPRouteManager. This is done because new configuration is based on CiliumBGPNodeConfig instead of CiliumBGPPeeringPolicy. Signed-off-by: harsimran pabla <[email protected]>
4efe1d7
to
7c9150f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now, LGTM. Thanks!
/test |
This change introduces scaffolding for BGPv2 reconcilers, starting with preflight and neighbor reconcilers. At later stage, other reconcilers will be added.
Change includes two commits