Repository navigation
docs(masque): Run MASQUE acceptance on the containerlab lab - #1224
Conversation
MASQUE acceptance no longer needs physical edge nodes, a staging edge node, the Talos target platform, a separate 10 Gbit/s load host or a kernel reboot. Every check runs on the containerlab gvpc lab, which runs Kind clusters with Cilium over a containerlab SRv6 transit, or on loopback harnesses. Target-platform qualification (#1002) closed as not planned, so no row depends on it. The benchmark contract now places the provider on one dfw edge node and the load client on the other, with real gVPC workloads behind the TUN device, tc netem for loss and delay, and an untunneled baseline over the same path. It gates on admission limits, overload rejection, recovery, expiry under load, tenant isolation and RSS. Throughput, p99 added RTT, loss and CPU are reported as measured on the lab host and are not gated, because they depend on the host hardware. The acceptance matrix accepts a Kind node container restart where a row needs a node reboot, moves the provider integration and independent-provider rows to the lab, and stops reusing #1002 target evidence. The capacity page describes what the lab qualification run covers beyond the loopback harness.
The benchmark keeps the existing gate that unrelated sessions hold at least 80% of their baseline goodput under admission floods. The capacity page says the containerlab capacity run is being added under #984 instead of describing it as existing, and the edge docs index matches the page. The acceptance matrix states that a Kind node container restart keeps the host kernel's boot ID, so it covers process and container state loss, not a new boot.
The clock assumption names the no-pause condition for the lab host instead of physical nodes, and the capacity page marks the loopback goodput rows as reported on the lab rather than unproven on edge nodes.
|
Both reviewers agreed on the second pass over the fix commit, and a later text-only commit settled the last wording points. pr-rereviewer: merge. It confirmed all four first-pass findings fixed: the capacity doc that presented a not-yet-existing task as existing, the stale edge docs index line, the restored 80% unrelated-session goodput gate, and the documented Kind node container restart limit. Its remaining notes were a boot-ID coverage warning for row 23, settled by the maintainer's decision that a Kind node container restart satisfies a node reboot, and a capacity status-cell nit. pr-conventions-reviewer: merge. Its one warning was that the contract clock assumption still said "physical-node". Commit 329c1e7 addressed the clock wording and the capacity status-cell nit, text only. The first-pass title nit was not applied, and the provider-contract Target legend is left as foundation history, out of scope here. The change is documentation only, so no e2e run applies beyond CI. All 24 CI checks passed on the head, with 2 skipped. Auto-merge is enabled with the merge method, which is the only method the base branch ruleset allows. The ruleset requires one approving review and code owner review, and dismisses stale approvals on push, so the PR waits for a human approval before it merges. |
|
Note This change is unlikely to harm production. Documentation, test, or CI-only change; nothing that runs in production is affected. Polylane analysed Did this help? React 👍 or 👎 so the next review is sharper. |
ecv
left a comment
There was a problem hiding this comment.
Approve.
Docs only: MASQUE acceptance and the capacity benchmark move from physical edge nodes to the containerlab gvpc lab, and throughput, added RTT, loss and CPU become reported rather than gated. The docs are consistent with #1002 closing as not planned, and every row still gates on limits, overload rejection, recovery, expiry, isolation and RSS.
- A "node reboot" row is now a Kind node container restart. The contract says plainly that it keeps the kernel boot ID and kernel-held state, so no row claims to cover a real boot.
- The clock assumption now rests on the lab host not being paused or migrated, which matches a lab run.
Follow-ups:
- Nothing in the acceptance matrix now measures MASQUE on real edge hardware, NICs or Talos. Someone should own a throughput and RTT check on a real edge cell before production traffic depends on these numbers.
- Real-boot behavior (new boot ID, kernel state lost) is no longer covered by any row. Name where that evidence comes from, or state that it is accepted as untested.
Summary
MASQUE acceptance asked for physical edge nodes, a staging edge node, the Talos target platform, a separate 10 Gbit/s load host and a node reboot, none of which the project will provide.
Acceptance now runs on the containerlab gvpc lab and loopback harnesses, with a Kind node container restart standing in for a node reboot and no dependency on the closed target-platform work in #1002.
The benchmark gates on admission limits, overload rejection, recovery, expiry under load, isolation and RSS, and reports throughput, added latency, loss and CPU without gating them, because they depend on the lab hardware.
Test plan
Related to #970, #976, #984, #985