-
Notifications
You must be signed in to change notification settings - Fork 282
🐛 Define subnetID on LB member when networks differ #2799
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
Conversation
✅ Deploy Preview for kubernetes-sigs-cluster-api-openstack ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Hi @nikParasyr. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
283dca2 to
0bf4234
Compare
|
/ok-to-test |
0bf4234 to
ccba74b
Compare
|
/retest |
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.
@nikParasyr Thanks for the fix! I am not sure if checking for each provider is really optimal; especially in the long run.
Currently, if I am not wrong, in Octavia, member SubnetID is optional and can be provided. If it’s omitted, Octavia will infer a suitable subnet from the member port’s network. However, in cross-network scenarios (e.g., VIP network != member network), OVN requires an explicit SubnetID for the member to be created correctly. Amphora accepts SubnetID too, so providing it is generally safe.
I can see two options that could be provider-agnostic.
- Always set SubnetID based on the member’s actual subnet
- Set SubnetID whenever the VIP network differs from the member’s network
Either path avoids per-provider conditionals and works even when the default provider is OVN without being specified in the spec. Let me know what you think.
cc @lentzi90
lentzi90
left a comment
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.
With #2798 merged, can we drop the check for ovn? I think that would be good to do. The other check for LB vs cluster network ID is good IMO. You are right that we could just unconditionally set the ID but I think there is a point also relying on the defaults as we have been doing so far.
ccba74b to
7d8fbaa
Compare
Done. |
Define subnetID on LB member creation when the user is using different networks for the cluster and the loadbalancer
7d8fbaa to
d7b456f
Compare
lentzi90
left a comment
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.
/approve
bnallapeta
left a comment
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.
/lgtm
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bnallapeta, lentzi90 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/hold cancel |
What this PR does / why we need it:
Define subnetID on ovn LB member creation when the user is using different networks for the cluster and the loadbalancer
Which issue(s) this PR fixes:
Fixes #2790
Special notes for your reviewer:
In general I have some concerns with the approach, would like input from your side:
openStackCluster.Status.APIServerLoadBalancer.LoadBalancerNetwork.ID. While working on this i noticed that the field is not always populated ( related PR )openStackCluster.Status.Network.Subnets[0].ID-- see point 3 )openStackCluster.Status.Network.Subnets[0].ID. A control-plane machine can be attached to different subnets ( ifOSM.spec.ports. are defined ). I couldnt find a way to get the subnetID from the spec though as a user can define just aspec.ports[0].network.id(or a filter) andOSM.statusdoesn't provide info on subnetID. So the assumption is that the control-plane machine is using the cluster subnet.TODOs:
/hold