Background
addroutes uses types.Route which supports only a single gateway per destination.
There is no way to configure ECMP routes explicitly in the current plugin.
For our usecase which is explained below, we want the feature in this plugin.
Use case
Our use case is as follows:
- In an OpenStack environment, we create multiple routers connected to the same L2 network.
- This network is attached to worker VMs.
- Inside the VM, we attach an additional interface to Pods using ipvlan (as a secondary interface).
- For this interface, we want to configure ECMP routes where multiple OpenStack routers act as gateways.
This requires the ability to define multiple equal-cost default routes in the configuration.
Current Workaround and the Need for ECMP
Currently, traffic distribution is achieved by assigning different NADs to individual worker nodes or pods. This creates substantial IaC management overhead and becomes a significant challenge when scaling out. By introducing ECMP support, a unified NAD configuration can be used, greatly simplifying operations and improving scalability.
ECMP also provides redundancy against router failures, which cannot be achieved with a single statically configured next hop.
Proposal Specification
One possible specification for ECMP route configuration is as follows:
{
"type": "route-override",
"addecmproutes": [
{
"dst": "10.200.0.0/24",
"gws": [
"192.168.100.1",
"192.168.100.2"
]
}
]
}
A new field addecmproutes (and delecmproutes for deletion) is introduced, where each entry specifies a destination prefix and a list of gateways.
Background
addroutesusestypes.Routewhich supports only a single gateway per destination.There is no way to configure ECMP routes explicitly in the current plugin.
For our usecase which is explained below, we want the feature in this plugin.
Use case
Our use case is as follows:
This requires the ability to define multiple equal-cost default routes in the configuration.
Current Workaround and the Need for ECMP
Currently, traffic distribution is achieved by assigning different NADs to individual worker nodes or pods. This creates substantial IaC management overhead and becomes a significant challenge when scaling out. By introducing ECMP support, a unified NAD configuration can be used, greatly simplifying operations and improving scalability.
ECMP also provides redundancy against router failures, which cannot be achieved with a single statically configured next hop.
Proposal Specification
One possible specification for ECMP route configuration is as follows:
A new field
addecmproutes(anddelecmproutesfor deletion) is introduced, where each entry specifies a destination prefix and a list of gateways.