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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

support ovn ic ecmp (#3348) #3410

Merged
merged 1 commit into from
Nov 14, 2023
Merged

support ovn ic ecmp (#3348) #3410

merged 1 commit into from
Nov 14, 2023

Conversation

changluyi
Copy link
Collaborator

@changluyi changluyi commented Nov 14, 2023

  • support ovn ic ecmp

Pull Request

What type of this PR

Examples of user facing changes:

  • Features
  • Bug fixes
  • Docs
  • Tests

Which issue(s) this PR fixes

Fixes #(issue-number)

WHAT

馃 Generated by Copilot at a093a5a

This pull request adds and improves features for the ovn interconnection (ovn-ic) between OVN clusters. It updates the Makefile and the kind.yaml.j2 template to enable ovn-ic in the kind environment. It adds new methods and parameters to the ovs package for managing logical router policies and logical switch ports based on external IDs. It modifies the controller package to use the new methods and parameters and to handle different CIDR formats and route options. It also fixes some format, error, and duplication issues in the code. It adds a new constant OvnICNone to the util package.

馃 Generated by Copilot at a093a5a

ovs package grows
adding methods and options
autumn of changes

HOW

馃 Generated by Copilot at a093a5a

  • Add and modify methods for interacting with the OVN databases (link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link)
  • Add DeleteLogicalSwitchPorts method to delete logical switch ports by external IDs and filter function (link, link, link)
  • Add GetLogicalRouterPoliciesByExtID method to get logical router policies by external ID key and value (link, link, link)
  • Modify ListLogicalRouterPolicies method to add ignoreExtIDEmptyValue parameter and use it to filter policies by external IDs (link, link, link, link, link, link, link)
  • Modify AddLogicalRouterPolicy method to compare external IDs of existing policies and avoid duplicates (link)
  • Modify DeleteLogicalRouterPolicies method to add ignoreExtIDEmptyValue parameter and pass it to ListLogicalRouterPolicies method (link)
  • Modify ListLogicalRouterStaticRoutesByOption method to check option key existence in route options (link)
  • Add and modify tests for the above methods (link, link, link, link, link, link, link, link, link)
  • Modify methods for establishing and removing the interconnection between OVN clusters (link, link, link, link, link, link, link, link, link, link, link, link)
    • Modify removeInterConnection method to delete logical switch ports and logical router ports by external ID and filter function (link)
    • Modify establishInterConnection method to create multiple transit switches for each group of gateway nodes and use chassis name for logical patch port name (link)
    • Modify establishInterConnection method to move az name setting logic and remove redundant logical switch port check (link)
    • Modify acquireLrpAddress method to add transit switch name parameter and more error information (link)
    • Modify startOvnIC method to rename it to startOVNIC and change error handling logic (link)
    • Modify stopOvnIC method to rename it to stopOVNIC and change error handling logic (link)
    • Modify delLearnedRoute method to handle nil policy and use policy variable instead of pointer (link, link)
    • Modify SynRouteToPolicy method to add a call to syncOneRouteToPolicy method with OvnICNone tag (link)
    • Modify syncOneRouteToPolicy method to use GetLogicalRouterPoliciesByExtID method and string set for policy routes (link, link)
    • Modify getTSCidr method to use subnetsLister to get default logical switch subnet and protocol (link)
    • Add ovs package import statement (link)
  • Modify methods for deleting policy routes for local DNS cache, underlay to overlay interconnection and VPC (link, link, link)
    • Modify deletePolicyRouteForLocalDNSCacheOnNode method to add ignoreExtIDEmptyValue parameter and pass it to ListLogicalRouterPolicies method (link)
    • Modify deletePolicyRouteForU2OInterconn method to add ignoreExtIDEmptyValue parameter and pass it to ListLogicalRouterPolicies method (link)
    • Modify handleAddOrUpdateVpc method to add ignoreExtIDEmptyValue parameter and pass it to ListLogicalRouterPolicies method (link)
  • Modify Makefile targets for initializing kind clusters with ovn-ic feature (link, link, link, link, link)
    • Add ovn_ic variable to indicate whether ovn-ic feature is enabled and pass it to kind-init and kind-generate-config targets (link)
    • Add command to untaint control plane node for kind-install-ovn-ic target (link)
    • Modify gateway_node_name variable format to use semicolon instead of comma for kind-install-ovn-ic target and ovn-ic yaml template file (link, link, link)
  • Add OvnICNone constant to represent empty ovn-ic tag value (link)
  • Add logic to kind.yaml.j2 template file to support ovn-ic feature in kind environment (link, link)
    • Add ovn_ic variable and set default value of "false" (link)
    • Add condition to add worker node if ovn_ic is "true" (link)

* support ovn ic ecmp

Signed-off-by: changluyi <clyi@alauda.io>
@changluyi changluyi merged commit 984c035 into release-1.12 Nov 14, 2023
4 checks passed
@changluyi changluyi deleted the ovn-ic-ecmp-1.12 branch November 14, 2023 04:12
bobz965 pushed a commit that referenced this pull request Nov 14, 2023
* support ovn ic ecmp

Signed-off-by: changluyi <clyi@alauda.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant