-
Notifications
You must be signed in to change notification settings - Fork 32
Improve robustness of get_pod_ip() function #496
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
base: main
Are you sure you want to change the base?
Conversation
|
Hi @bshephar. Thanks for your PR. I'm waiting for a openstack-k8s-operators 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. DetailsInstructions 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. |
|
Tested like so: |
869f7f6 to
ee2e6ce
Compare
|
My bad: |
ee2e6ce to
adff15f
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: bshephar The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
022e5c7 to
7bf3b9c
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/6f10386c0b8d4d79952c45901c95f010 ❌ openstack-k8s-operators-content-provider TIMED_OUT in 30m 50s |
|
/test horizon-operator-build-deploy-kuttl |
|
recheck |
7bf3b9c to
e5b355c
Compare
In cases where single-stack IPv6 is used, it's possible that an unhandled exception is raised since we first attempt to verify ipv4 connectivity and fail before checking ipv6. This change makes the get_pod_ip() function more robust by ensuring that both are checked before raising an error. Fixes openstack-k8s-operators#478 Jira: https://issues.redhat.com/browse/OSPRH-19216 Signed-off-by: Brendan Shephard <[email protected]>
e5b355c to
9809392
Compare
|
Hey @deshipu and @mcgonago. Happy New Year folks, I hope you had a nice break. I know @deshipu wasn't a huge fan of this implementation to begin with. I would be keen to hear from your experience if you can think of a better way to address the initial problem that this function was added to address. To give you the quick overview of the problem. We don't want to just allow anything in But, we ALSO want Kubernetes to be able to confirm that each pod is functioning and serving traffic. So, if we just rely on healthchecks via the route, or the Kubernetes Service. Then, k8s services (with ovn-kubernetes) are defined as OVN LoadBalancers that send traffic to all of the pods defined for the loadbalancers backend. Not ideal, since we could never be sure of which pod was just checked. So Kubernetes is unable to reliably determine if the pod we just started is actually working. If we try to check the pod directly, then we can't because the IP address isn't in To solve for this, I wrote the function in this file and used it to add the pods IP address to How about this as an alternative? |
In cases where single-stack IPv6 is used, it's possible that an unhandled exception is raised since we first attempt to verify ipv4 connectivity and fail before checking ipv6. This change makes the get_pod_ip() function more robust by ensuring that both are checked before raising an error.
Fixes #478