Skip to main content

Secure Containers / Sentinel use-case matrix

Source of truth for portable CI coverage. Every portable row must have an existing test target that scripts/check-use-case-matrix.sh can resolve. Live rows require lab infrastructure and are not required for PR green.

CI job names refer to .github/workflows/secure-containers-coverage.yml unless noted. Live rows use secure-containers-live.yml (opt-in via FLUXVM_SECURE_CONTAINERS_LIVE_CI=1).

IDUse caseSetTest targetCI jobLive?
UC-NP-01No matching policy β†’ unmanaged14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-02Explicit egress deny-all14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-03Selector union across policies14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-04Exact TCP port + endPort range14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-05SCTP supported14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-06ipBlock except decomposition14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-07IPv6 host block14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-08Named port resolve + fail-closed14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-09Rule-cap / malformed β†’ safe deny14controllers/fluxvm-networkpolicy-controller/internal/policy/compiler_test.gogo-controllerno
UC-NP-10Reconcile apply / clear / deny-on-compile-error14controllers/fluxvm-networkpolicy-controller/internal/controller/controller_test.gogo-controllerno
UC-NP-11K8s list failure stops before FluxVM writes14controllers/fluxvm-networkpolicy-controller/internal/controller/controller_test.gogo-controllerno
UC-18-01EndpointSlice VIP when only selected Ready18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-02Reject VIP when routable backend outside peer18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-03Unselected serving+terminating blocks VIP18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-04Ready=nil treated as routable18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-05Dual-stack safety per family18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-06VIP never ingress source identity18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-07Stale endpoint address blocks VIP18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_set18_test.gogo-controllerno
UC-18-08VIP mode requires EndpointSlice capability18controllers/fluxvm-networkpolicy-controller/internal/controller/endpointslice_set18_test.gogo-controllerno
UC-18-09VIP mode off / empty slice / selectorless Service18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_coverage_test.gogo-controllerno
UC-18-10Selected serving+terminating alone admits VIP18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_coverage_test.gogo-controllerno
UC-18-11Dual-stack partial fail (IPv4 ok, IPv6 blocked)18controllers/fluxvm-networkpolicy-controller/internal/policy/endpointslice_coverage_test.gogo-controllerno
UC-18-12EndpointSlice list error fail-closed before writes18controllers/fluxvm-networkpolicy-controller/internal/controller/endpointslice_coverage_test.gogo-controllerno
UC-18-13Live EndpointSlice NotReady→Ready withdraws VIP18scripts/test-networkpolicy-endpointslice-set18.shlive-endpointsliceyes
UC-17-01Rule telemetry aggregates direction + identity17tools/fluxvm-policy-observer/internal/observer/rule_telemetry_set17_test.gogo-observerno
UC-17-02Rule telemetry ignores other Pod17tools/fluxvm-policy-observer/internal/observer/rule_telemetry_set17_test.gogo-observerno
UC-17-03Prefer prhit; fall back to shared counters17tools/fluxvm-policy-observer/internal/observer/schema_coverage_test.gogo-observerno
UC-17-04Schema-v11 / v10 / v9 recognition19tools/fluxvm-policy-observer/internal/observer/schema_coverage_test.gogo-observerno
UC-17-05Observer sizing model JSON19scripts/benchmark-policy-observer-set19.pyobserver-sizingno
UC-17-06Stateful CT TCP live proof (S1 starter)17scripts/test-networkpolicy-stateful-set17.shlive-statefulyes
UC-19-01pridx key encoding + wildcard protocol OR19crates/fluxvm-network/src/ebpf.rsrust-cratesno
UC-19-02IPv6 extension-header walk table19crates/fluxvm-network/src/ipv6_ext_walk.rsrust-cratesno
UC-19-03UpdateNetworkPolicy serde round-trip19crates/fluxvm-container-protocol/src/lib.rsrust-cratesno
UC-19-04Guest mirror empty / dedupe / schema_version19crates/fluxvm-container-protocol/src/lib.rsrust-cratesno
UC-19-05Host eBPF objects build (schema-v10)19scripts/build-ebpf.shebpf-objectsno
UC-19-06Guest eBPF objects build19scripts/build-ebpf-guest.shebpf-objectsno
UC-S12E-01Sentinel GA static + unit12Escripts/test-sentinel-ga-static.shsentinel-pythonno
UC-S16E-01Fleet drift/SLO guard static16Escripts/test-sentinel-fleet-guard-static.shsentinel-pythonno
UC-S17E-01Release admission static17Escripts/test-sentinel-release-admission-static.shsentinel-pythonno
UC-SHELL-01NetworkPolicy live scripts syntax*scripts/test-networkpolicy-live.shshell-contractsno
UC-SHELL-02Set17/18/19 + GA gate scripts syntax*scripts/secure-containers-ga-gate-set19.shshell-contractsno
UC-SHELL-03NP controller RBAC lists EndpointSlices18controllers/fluxvm-networkpolicy-controller/deploy/rbac.yamlshell-contractsno
UC-MATRIXMatrix targets resolve on disk*scripts/check-use-case-matrix.shmatrix-lintno
UC-S1Live CT-bypass + revocation TCP (S1)14/16scripts/test-networkpolicy-stateful-set17.shlive-statefulyes
UC-S1S1 depth mid-flow + SYN anti-replay16/17scripts/e2e-networkpolicy-s1-depth.shlive-gayes
UC-S2Multi-node + second CNI (S2; Set17 REQUIRE_MULTI_NODE=1)14scripts/evidence-networkpolicy-second-cni.shlive-gayes
UC-S9Kata P0/P1 fixtures (S9)*scripts/evidence-kata-p0p1-matrix.shlive-gayes
UC-S10Real multi-host fleet (S10)15Escripts/evidence-fleet-multihost.shlive-gayes
UC-S11Attached-VM migration (S11)13Escripts/evidence-migration-attached-vm.shlive-gayes
UC-DP-01Direct datapath: node ⇄ Pod veth ⇄ tap ⇄ guest with no bridge; VM-edge policy runs before the redirect; the tap's egress hook still runs on redirected frames (Linux root)DPscripts/test-direct-datapath.shnetwork-fabric (privileged)no
UC-DP-02Loader attaches, repairs and removes the direct wiring inside the Pod netns (TCX and legacy tc)DPcrates/fluxvm-network/tests/direct_loader.rsnetwork-fabric (privileged)no
UC-DP-03Two VMs share one unbridged uplink: LANβ†’guest by ARP+MAC, guestβ†’LAN, guest↔guest, per-VM removalDPcrates/fluxvm-network/tests/direct_uplink.rsnetwork-fabric (privileged)no
UC-DP-04Shim datapath decision (bridge/direct/auto), netns prepare/restore, journal back-compatDPcrates/fluxvm-containerd-shim/src/main.rsnetwork-fabricno
UC-DP-05Warm-pool direct hotplug: tap passed to QEMU as a descriptor (QMP getfd) after the dataplane is wiredDPcrates/fluxvm-qemu/src/qmp.rsnetwork-fabricno
UC-DP-06Pod-policy rule matching unchanged by the verifier fix; VM-edge program stays inside the verifier budgetDPscripts/test-pod-policy-verdict.pynetwork-fabric (privileged)no
UC-DP-L1Live Cilium + KVM Pod in direct mode: reachable, no host bridge, NetworkPolicy still enforcedDPscripts/evidence-direct-datapath.shlive-gayes
UC-SC-01Multi-VMM backend selection (qemu/CH/FC)S9crates/fluxvm-containerd-shim/src/main.rsnetwork-fabricno
UC-SC-02Firecracker ext4 share packingS9crates/fluxvm-firecracker/src/lib.rsrust-cratesno
UC-SC-03Firecracker share OCI fixtureS9tests/oci-fixtures/firecracker-shares.jsonmatrix-lintno
UC-SC-04hostPath allowlist + broker surfaceS9scripts/evidence-kata-p0p1-matrix.shlive-gano
UC-SC-05Calico/Flannel CNI churn harnessS9scripts/evidence-cni-churn.shlive-gano
UC-SC-05bMulti-CNI under load (churn + Cilium + second cluster)CNIscripts/evidence-cni-under-load.shlive-gayes
UC-SC-06Phase completion orchestratorS9scripts/complete-secure-containers-phases.shshell-contractsno

See also NEXT-FEATURES.md and secure-containers-set19.md.