Skip to content

Prove MASQUE packet attachments on the Galactic Edge foundation #974

Closed

Description

@privateip

Parent: #970

Deliverable

A reproducible MASQUE packet-access integration fixture on Talos/Cilium using the foundation-owned attachment lifecycle.

Dependencies

#972, #993; reuse the #1000 conformance harness and #1002 target setup. Final platform evidence requires their qualified artifacts; fixture work can proceed earlier.

Galactic Edge integration (#992)

Implement this milestone as a consumer of the Galactic Edge provider contract. #992 owns provider authorization, host attachment lifecycle, shared-state fencing and maintenance, independently enforced forwarding expiry, prefix conflict arbitration/publication, and gVPC traffic policy. MASQUE owns client authentication, connector /96 assignment and retention, session packet checks, transport behavior and its provider adapter. Use the foundation's versioned contract and existing provider helpers; do not introduce a second host-networking controller, lease store or BGP publisher. Any required foundation change must be tracked and qualified under #992 before this milestone claims integrated acceptance.

Work

Acceptance criteria

  • The actual deployed agent creates PacketAccess attachments and the provider opens them without privileged manual setup.
  • Positive and negative packet checks prove isolation in both directions, including identical addresses and a destination belonging only to the other VPC.
  • Pod recreation, partial setup and teardown preserve unrelated/replacement resources; cleanup is asserted and failures fail the run.
  • Target-platform checks execute with pinned versions and recorded results; skips, mocks and readiness-only checks do not pass the gate.

Scope follows #970: CONNECT-IP with HTTP/2 fallback; no public API development, plugin/portal integration, product-client development or production rollout.

Activity

  1. changed the title [-]MASQUE: prove isolated gVPC attachments on Talos/Cilium[/-] [+]Prove isolated gVPC attachments on Talos/Cilium[/+] on Oct 22, 2026
  2. added theissue type on Oct 22, 2026
  3. changed the title [-]Prove isolated gVPC attachments on Talos/Cilium[/-] [+]Prove MASQUE packet attachments on the Galactic Edge foundation[/+] on Oct 25, 2026
  4. self-assigned this
    on Oct 27, 2026
  5. privateip commented on Oct 27, 2026

    @privateip
    CollaboratorAuthor

    Checked against main at 509c9c99d. The deliverable is still missing, so this issue stays open.

    What exists on main

    • internal/edge/connectip is the HTTP/3 CONNECT-IP protocol component. Its Admission, Lease and PacketBackend interfaces are implemented only by fixtures in its own tests and in tests/connectipinterop. Nothing connects it to EdgeInstance, EdgeAttachment or EdgeRoute.
    • examples/edge-provider is the independent reference provider. It opens a PacketAccess TUN device and answers ICMPv6 echo and UDP, but it does not speak CONNECT-IP.
    • tests/edgeconformance runs the foundation contract rows against the containerlab lab only. No checked-in target exists for a cluster of real nodes: Qualify the foundation on the target platform #1002 was closed as not planned and test(edge): Run edge conformance on a cluster of real nodes #1118 was closed without merging.

    Gaps against the acceptance criteria

    1. No process runs CONNECT-IP as an approved Edge provider, so the agent never creates a PacketAccess attachment that MASQUE then opens.
    2. No CONNECT-IP isolation check uses identical addresses in two VPCs, with a destination that only the other VPC has. The connectip TUN tests demultiplex within one VPC, and conformance row 06 uses the reference provider's echo.
    3. MASQUE has no fixture that recreates pods, injects partial setup or asserts cleanup.
    4. No target-platform run with pinned versions has been recorded.

    The fix plan will follow in a separate comment.

  6. privateip commented on Oct 27, 2026

    @privateip
    CollaboratorAuthor

    Fix plan:

    1. Fixture provider. A test-only command in the root module (it needs internal/edge/connectip) that runs as an approved Edge provider:

      • holds its EdgeInstance lease, requests a PacketAccess EdgeAttachment and claims a per-connector /96 EdgeRoute, following the reference provider;
      • admits CONNECT-IP requests through a static test credential that maps to one VPC and one /96;
      • carries packets through connectip.TUNBackend on the attachment's device;
      • runs without host namespaces, hostPath, NET_ADMIN or BPF.

      It ships with an image, kustomizations and unit tests.

    2. MASQUE rows in tests/edgeconformance, run on the containerlab lab:

      • identical /96s in two VPCs on the same node and in one provider process;
      • a positive control and a negative probe in each direction, including a destination that exists only in the other VPC;
      • cold neighbors, local and remote workloads, and NAT egress on the attachment node;
      • pod recreation and partial setup, with cleanup asserted;
      • recorded versions and the provider's actual privileges;
      • the applicable Edge pod attachments: unchecked caller inputs and weak isolation tests #989 findings (A05, A06, A08, A14, A16 in docs/designs/masque/acceptance.md).
    3. Target platform. No harness exists for a cluster of real nodes (Qualify the foundation on the target platform #1002 and test(edge): Run edge conformance on a cluster of real nodes #1118 are closed). The last acceptance criterion stays blocked, and this issue stays open until those rows run on a target cluster.

    This changes test and fixture code only, plus one more test image. Core behavior doesn't change. Validation is task ci and task verify:edge-conformance on a freshly deployed lab.

  7. privateip commented on Oct 27, 2026

    @privateip
    CollaboratorAuthor

    The target-platform criterion moves to #985. This issue's owner decided to qualify on the target platform there, since #985 already owns the final MASQUE evidence on a staging node. No harness for a cluster of real nodes exists yet. #1002 and #1118 are closed.

    The lab work is complete with #1140 and #1169:

    • The deployed agent creates the fixture's PacketAccess devices, and the unprivileged fixture opens them. A forged identity, an unknown service, unsupported versions and a missing device fail before anything forwards, and the fixture's token and bindings are only what core grants.
    • Identical /96s in two VPCs stay isolated in both directions, against a destination only the other VPC has, with captures on every workload.
    • Pod recreation, a half-set-up instance killed without shutdown, and teardown clean up through core and leave unrelated and replacement resources alone. Cleanup is asserted.
    • Edge pod attachments: unchecked caller inputs and weak isolation tests #989's A05, A06, A08, A14 and A16 are settled. A16 was a real gap in the foundation, and fix(edge): Remove stray IPv6 routes and addresses on Edge attachments #1169 fixes it.

    #1169 closes this issue when it merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions