Introduce gateway nodes that terminate public ingress and route traffic into private workloads on the mesh, so that a workload can be reachable from the internet without any provider exposing its own network directly. Gateways are a new role with a new trust boundary: per ADR-012 §2 they are trusted for reachability only and must never be trusted with the confidentiality or integrity of tenant traffic.
Blocked by: ADR-017 (see ADR-012 §6) — no implementation before acceptance. Depends on #53.
Acceptance criteria:
- gateway registration, discovery, and selection are decentralized and do not reintroduce a single operator on the ingress path;
- tenant traffic is end-to-end protected through the gateway; a malicious gateway can drop or delay traffic but cannot read or alter it undetected;
- routing to a workload is authorized by a finalized lease, and revocation removes reachability within a stated bound;
- gateways are rate-limited and abuse-resistant, and a gateway cannot be used to amplify traffic at a third party;
- gateway operators are accountable: their availability is measurable and attributable, so the reputation and penalty machinery can apply to them as it does to providers;
- selective blackholing and metadata harvesting are addressed explicitly, per the gateway row of the ADR-012 §2 threat table;
- degraded state — no gateway available for a workload — is reported as an explicit error, never as a healthy deployment;
- tests cover ingress to a healthy workload, gateway failure and failover, lease revocation, a gateway attempting interception, and abusive traffic from the public side.
Original request (FR, preserved verbatim):
Créer des nodes spécialisés pour router le trafic public vers les workloads privés du mesh.
Introduce gateway nodes that terminate public ingress and route traffic into private workloads on the mesh, so that a workload can be reachable from the internet without any provider exposing its own network directly. Gateways are a new role with a new trust boundary: per ADR-012 §2 they are trusted for reachability only and must never be trusted with the confidentiality or integrity of tenant traffic.
Blocked by: ADR-017 (see ADR-012 §6) — no implementation before acceptance. Depends on #53.
Acceptance criteria:
Original request (FR, preserved verbatim):