Context
#210 delivered the ADR-0063 runtime mutation coordinator and its first live
mutation shapes via EvpnService.ApplyEvpnRuntime (commit gate #211, IP-VRF
runtime delete #223, ip_vrf relink d767ad3). The coordinator now commits, with
validate-before-publish: L2VNI / IP-VRF / Ethernet-Segment add/delete/redefine,
atomic tenant teardown, and ip_vrf relink.
This issue tracks the mutation shapes that still fail closed (per the
crates/evpn/src/runtime.rs module docs) plus the SIGHUP path, which #210's
acceptance sketch did not require.
Remaining work
- L3VNI / device / table IP-VRF identity redefine — currently fail-closed in
the coordinator.
- Non-teardown mixed edits — multiple coupled changes committed together that
are not an atomic tenant teardown.
- SIGHUP file-driven EVPN convergence —
src/reload.rs still pins
evpn_instances and evpn_ip_vrfs to the startup snapshot until restart
(reload.rs:1417, reload.rs:1522). Let the coordinator converge reload edits
so EVPN config changes no longer require a restart.
Out of scope (unchanged from #210)
Acceptance
- Each remaining mutation shape either commits through the coordinator with
validate-before-publish, or has a documented, tested fail-closed rationale.
- SIGHUP EVPN edits converge through the coordinator (drop the restart-required
pin), or an ADR note records why they stay restart-required.
- Focused unit tests cover validation-before-publish and no partial silent table
swap for the new shapes.
Follow-up to #210.
Context
#210 delivered the ADR-0063 runtime mutation coordinator and its first live
mutation shapes via
EvpnService.ApplyEvpnRuntime(commit gate #211, IP-VRFruntime delete #223,
ip_vrfrelink d767ad3). The coordinator now commits, withvalidate-before-publish: L2VNI / IP-VRF / Ethernet-Segment add/delete/redefine,
atomic tenant teardown, and
ip_vrfrelink.This issue tracks the mutation shapes that still fail closed (per the
crates/evpn/src/runtime.rsmodule docs) plus the SIGHUP path, which #210'sacceptance sketch did not require.
Remaining work
the coordinator.
are not an atomic tenant teardown.
src/reload.rsstill pinsevpn_instancesandevpn_ip_vrfsto the startup snapshot until restart(
reload.rs:1417,reload.rs:1522). Let the coordinator converge reload editsso EVPN config changes no longer require a restart.
Out of scope (unchanged from #210)
Acceptance
validate-before-publish, or has a documented, tested fail-closed rationale.
pin), or an ADR note records why they stay restart-required.
swap for the new shapes.
Follow-up to #210.