I hope I remembered all the discussion points we had about how to design
this plugin, so:
* Instead of changing OS::Neutron::ExtraRoute we introduce
OS::Neutron::ExtraRouteSet so we can take advantage of Neutron API's
ability to add/remove multiple extra routes at once.
* Addition and removal of extra routes is supposed to be atomic with
Neutron extension 'extraroute-atomic'. An update involves a removal
and an addition, therefore an update is not atomic operation. However
unless the responsibility for an extra route is moved from one stack
to another that should not be a problem.
* Sharing the responsibility for an extra route between stacks (that is
multiple stacks defining the same extra route) is not supported due
to the Neutron API not allowing this.
Let me know what did I forget.
Example template:
resources:
extrarouteset0:
type: OS::Neutron::ExtraRouteSet
properties:
router: { get_resource: router0 }
routes:
- destination: 10.0.0.0/24
nexthop: 10.0.0.10
- destination: 10.0.1.0/24
nexthop: 10.0.0.11
...
Change-Id: Ic1fe593d9821d844fd124b0212d444f6e3a0015e
Depends-On: https://review.opendev.org/675900
Story: #2005522
Task: #36264
355 B
355 B