Repository navigation
feat(lab): Enforce traffic policy in the containerlab lab - #871
Conversation
|
Detail for reviewers. Review order: Grant sets: Two existing scripts change: Validation on 0d7ce46 (base 870e5a1): Gap: no live deploy or |
The containerlab lab now runs interface traffic policy end to end, in enforce mode, while production stays off. It installs the galactic.datumapis.com CRDs and galactic-controller (on the host network, since the control plane cannot reach worker pod addresses, like cert-manager's webhook), turns on the router's reconciler, and binds every tenant attachment, in both directions, to a policy set granting only the paths that tenant's checks use. A generic attachment publisher replaces the ns60-only one and writes every attachment's status, including the host interface the bindings attach to. verify:traffic-policy proves each binding is installed and, for the Private, PublicNAT and PublicService paths and the built-in default, that a grant forwards and a denial drops and is counted. Two envtest-backed tests keep the fixtures valid and every tenant NAD bound. docs/traffic-policy/ rollout.md is the operator guide for turning policy on in a cell. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0d7ce46 to
221ea1a
Compare
Summary
Traffic policy can be enforced end to end, but nothing yet exercises it on real traffic, and no guide says how to turn it on in a cell.
The containerlab lab now enforces it from the start, binding every tenant in both directions to grants for only the traffic its checks send, and a new lab check proves an allowed and a denied, counted flow on private, NAT and public service traffic and on the built-in default. A rollout guide covers install order, writing grants, auditing with the counters, enforcing and backing out.
Production stays off, and this has not run on a live lab yet, because the only lab available belongs to another session; until it does, the PR stays a draft.
Test plan
Stacked on #870. Related to #691
🤖 Generated with Claude Code