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
Serve NodePort services on secondary IP addresses #3328
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
zeeke
changed the title
Serve NodePort services on secondary IP addresses
[WIP] Serve NodePort services on secondary IP addresses
Dec 21, 2022
zeeke
force-pushed
the
ocpbugs-4485
branch
2 times, most recently
from
January 13, 2023 10:17
11516dc
to
a122155
Compare
zeeke
changed the title
[WIP] Serve NodePort services on secondary IP addresses
Serve NodePort services on secondary IP addresses
Jan 19, 2023
Waiting for to rebase this PR |
Asserting on `netexec` response to not containing errors does not allow using retries, as the test would fail during the first attempt. Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
changed the title
Serve NodePort services on secondary IP addresses
[WIP] Serve NodePort services on secondary IP addresses
Apr 7, 2023
zeeke
force-pushed
the
ocpbugs-4485
branch
9 times, most recently
from
April 12, 2023 07:46
456b127
to
22581b8
Compare
/retest-failed |
zeeke
force-pushed
the
ocpbugs-4485
branch
4 times, most recently
from
April 14, 2023 07:16
e335f8d
to
518fb41
Compare
/retest-failed |
Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
When a node gets a new IP addresses, node loadbalancers should be updated to serve NodePort services on the new address. Update node_tracker.go to track both `host-addresses` and `l3-gateway-config` IP addresses, as they are used in different ways for building load balancers. Add End2End test to control-plane suite. Update load balancer unit tests to include a multi address node. Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
changed the title
[WIP] Serve NodePort services on secondary IP addresses
Serve NodePort services on secondary IP addresses
Apr 14, 2023
trozet
approved these changes
Apr 21, 2023
@@ -36,6 +36,7 @@ type nodeInfo struct { | |||
// the node's Name | |||
name string | |||
// The list of physical IPs reported by the gatewayconf annotation | |||
// TODO: not used, remove |
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.
just remove this comment and rest is lgtm
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.
sure, thanks for noticing
For NodePort Services with ExternalTrafficPolicy = Local, incoming connections shouldn't be DNATted to masqueradeIP. Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
trozet
approved these changes
Apr 21, 2023
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
Apr 28, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
Apr 28, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
Apr 29, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
Apr 29, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
Apr 29, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
Apr 29, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 5, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 5, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 5, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 5, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 5, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 9, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-us
that referenced
this pull request
May 11, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
tssurya
pushed a commit
to tssurya/ovn-kubernetes-1
that referenced
this pull request
Jun 5, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org/ovn-kubernetes#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-ds
that referenced
this pull request
Sep 7, 2023
TemplateLB variables for node IP addresses have to support multiple IP noda address, hence the variables are in the format of NODE_IPv4_0, NODE_IPv4_1, NODE_IPv4_2, ... Struct `NodeIPsTemplates` manage the template variables for multiple nodes that may have different number of IP addresses each. Add unit and e2e tests on TemplateLBs with multiple IP addresses. Refs: ovn-org/ovn-kubernetes#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-ds
that referenced
this pull request
Sep 7, 2023
Refs: ovn-org/ovn-kubernetes#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
zeeke
added a commit
to zeeke/ovn-kubernetes-ds
that referenced
this pull request
Sep 8, 2023
Refs: ovn-org/ovn-kubernetes#3328 Signed-off-by: Andrea Panattoni <apanatto@redhat.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes NodePort services reachable on every IP address of a node.
They cannot be set only during
ovnkube-node
startup because other addresses can arrive later. The typical scenario is when a virtual IP address moves from a dead node the another.PR adds End2End tests to the
control-plane
suite to cover the main scenario.