Skip to content
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

EgressIP support on user defined networks #4438

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

pperiyasamy
Copy link
Contributor

This commit adds an enhancement proposal to support EgressIP for the user defined segmentation networks which serves as a primary network for the pods.

@pperiyasamy pperiyasamy requested a review from a team as a code owner June 13, 2024 14:11
@pperiyasamy pperiyasamy requested a review from kyrtapz June 13, 2024 14:11
@github-actions github-actions bot added the kind/documentation All issues related to documentation label Jun 13, 2024
@pperiyasamy pperiyasamy marked this pull request as draft June 13, 2024 14:11
@tssurya tssurya requested review from martinkennelly and removed request for kyrtapz June 13, 2024 14:17
@tssurya tssurya added the feature/user-defined-network-segmentation All PRs related to User defined network segmentation label Jun 13, 2024
@coveralls
Copy link

Coverage Status

coverage: 52.644% (-0.09%) from 52.729%
when pulling dad57d3 on pperiyasamy:okep-multi-network-egressip
into 17dce5c on ovn-org:master.

@tssurya tssurya added this to the v1.1.0 milestone Jun 15, 2024
@tssurya tssurya added feature/egress-ip Issues related to EgressIP feature kind/enhancement All issues/PRs that are new enhancement requests labels Jun 17, 2024
@pperiyasamy pperiyasamy force-pushed the okep-multi-network-egressip branch 2 times, most recently from 73543d3 to 12bbc73 Compare June 18, 2024 14:02
@pperiyasamy pperiyasamy marked this pull request as ready for review June 18, 2024 14:05
Copy link
Member

@martinkennelly martinkennelly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed to ln 110

docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
@martinkennelly
Copy link
Member

Partially reviewed - as discussed via slack - we need to rework this for non-IC where pkt marks wont survive when pkts cross nodes.

@martinkennelly
Copy link
Member

martinkennelly commented Jun 19, 2024

can you do me a favour? Feel free to say no cause it maybe a pain in the head for you.. but itll be easier for everyone to inspect the new arch. If theres no changes for any of the following deployment mods + network, fine to combine them in the same file, but name the file appropriately.

I think we need diagrams for the following combinations for each EIP "config" (defined later):

primaryeip-cdn-ic

primaryeip-cdn-non-ic

primaryeip-udn-l3-ic

primaryeip-udn-l3-non-ic

primaryeip-udn-l2

secondaryeip-cdn-ic

secondaryeip-cdn-non-ic

secondaryeip-udn-l3-ic

secondaryeip-udn-l3-non-ic

secondaryeip-udn-l2

primary means EIP is assigned to a pkt egressing primary interface and secondary is egress-ing a host secondary interface.

EIP "configs":

two pods, EIP with one IP - one on a node and another on the egress node
two pods, EIP with two IPs - one on a node and another on one of the egress nodes
Name the files so its clear which deployment model + network(s) we are in.

Peri will update the info to incorporate: https://docs.google.com/document/d/1mlhI9TJgy7DxJT-JX7Qz9_-rTgivZwlO4Pfyob616cs/edit

@tssurya
Copy link
Member

tssurya commented Jun 19, 2024

I have not looked at anything here in depth, but I want to say I'm loving what's happening here in this PR 👏👏👏👏👏

Copy link
Contributor Author

@pperiyasamy pperiyasamy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @martinkennelly and @tssurya for your great feedback and bringing up non-IC scenario.
@martinkennelly As we discussed, have incorporated EIP configs from your document (it was a very nice one, thanks).

Copy link
Member

@martinkennelly martinkennelly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed to ln198

docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
docs/okeps/okep-4456-egressip-on-user-defined-networks.md Outdated Show resolved Hide resolved
This commit adds an enhancement proposal to support EgressIPs
for the user defined segmentation networks which serves as a
primary network for the pods.

Signed-off-by: Periyasamy Palanisamy <pepalani@redhat.com>
@coveralls
Copy link

Coverage Status

coverage: 52.745% (-0.002%) from 52.747%
when pulling 9fb2ab6 on pperiyasamy:okep-multi-network-egressip
into afd362f on ovn-org:master.

@coveralls
Copy link

Coverage Status

coverage: 52.742% (-0.005%) from 52.747%
when pulling 0ddb750 on pperiyasamy:okep-multi-network-egressip
into afd362f on ovn-org:master.

Signed-off-by: Martin Kennelly <mkennell@redhat.com>
There isn't a reliable way for each node controller to generate a deterministic packet mark based on the constraints mentioned previously
for each EgressIP CR.

Packet marks (integer) will be centrally allocated by a cluster manager managed allocator and annotated on each EgressIP CR.
Copy link
Member

@martinkennelly martinkennelly Jun 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self: check to see upgrade order - if node controllers updates before CM, it could be blocking reconfiguring EIP during upgrade until CM is upgraded.
Edit: its ovnkube-node first on ocp, therefore, during upgrade, waiting for the mark will block eip config.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initially, we thought we could derive the mark from the EIP CR name or UID but thats a bad idea for a number of reasons (name can change, string needs to map to int within a range and it may clash).
So, we thought CM seems a good place to allocate it but during upgrade, EIP config would be blocked until CM upgrades. Need input.

@coveralls
Copy link

Coverage Status

coverage: 52.745% (-0.002%) from 52.747%
when pulling 40f831e on pperiyasamy:okep-multi-network-egressip
into afd362f on ovn-org:master.

+-----------------------------------------------------------+
| secondaryeip-cdn-l3-non-ic and secondaryeip-udn-l3-non-ic |
+===========================================================+
| TBD |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Options:

  • Not support EIPs assigned to secondary interfaces for non-ic
  • Use ovn_cluster_router to redirect to egress nodes GW and then also add a LRP to that egress nodes GW LRPs that redirect it to its mgnt port and pkt mark

@girishmg girishmg self-requested a review June 28, 2024 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/egress-ip Issues related to EgressIP feature feature/user-defined-network-segmentation All PRs related to User defined network segmentation kind/documentation All issues related to documentation kind/enhancement All issues/PRs that are new enhancement requests
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

4 participants