Skip to content

ST5: integration & live gate — cross-transport conformance + end-to-end leaf (Kind → OCP) #88

Description

@pdettori

ST5 — Integration & live gate: cross-transport conformance + end-to-end leaf

Part of the SandboxTransport epic (see epic #89). Both tracks. Depends on ST3 (backend) and ST4 (worker).

Spec: docs/specs/2026-07-08-sandbox-transport-grpc-design.md §11, §13.3.

Problem

KubectlTransport and GrpcRelayTransport are only safely swappable (driver #2) if they demonstrably satisfy the same SandboxTransport contract, and the remote path only counts as real once a genuine Go worker pod serves a leaf end-to-end over :443.

Goal

Prove equivalence and land the live gate (§11 testing table):

  • Conformance battery — one shared spec run against both KubectlTransport and GrpcRelayTransport: round-trip every op (read/write/bash/grep), abort mid-stream, timeout, reconnect→dedup, output-cap. This is what makes the two transports safely interchangeable. (The battery is authored here and is the same suite ST2 uses to prove its refactor inert.)
  • Manifest-shape test — a vitest that parses the relay + worker Deployment YAML directly (no kustomize in CI), matching the existing manifest-shape pattern.
  • Live gate — a real Go worker pod dialing the in-cluster relay over :443; one leaf end-to-end on Kind, then OCP, following the existing leaf-smoke pattern.

Non-goals (this task)

  • New transport behavior (owned by ST2/ST3) or worker behavior (ST4).
  • The deferred items (mTLS, multi-replica HA, private mesh, extra-language workers, HTTP/1.1 traversal — §13.4).

Acceptance

  • The same conformance suite is green against both transports (identical observable contract).
  • Manifest-shape vitest parses relay + worker Deployment YAML and passes in CI.
  • Live leaf smoke passes with the Go worker → relay :443 path on Kind, then on OCP (gated by the existing live-smoke env vars).

Touches

Shared conformance suite (k8s-sandbox tests, exercised by ST2 + ST3); Go contract tests (ST4); deploy/knative/ relay + worker manifests + smoke drivers (leaf-smoke.sh extension); CI wiring.

Next step

Green here retires the epic's core scope; deferred follow-ups (§13.4) stay tracked in the epic's Deferred section.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions