Commit Graph

20 Commits

Author SHA1 Message Date
joshsiv-mulga cf9e8ce0d0 docs: record the network contract, projection client and utils removal 2026-10-09 19:23:17 +10:00
joshsiv-mulga 1050485944 refactor: use contracts/network/v1 for vpc.* producers and consumers
Switch every vpc.* producer (domains/ec2/vpc, eip, instance, natgw,
routetable, igw, handlers/elbv2, handlers/eks, daemon, systemvpc) and the
network/subscribers consumer onto contracts/network/v1 subjects, event
types and the shared AckEnvelope. contracts/network/v1 becomes the sole
owner of vpc.igw-attach/detach, replacing the duplicate definitions in
contracts/ec2/v1.

Deletes the duplicated local subject constants and event structs:
subscribers' Topic* consts and event structs, vpc.NATEvent and SGEvent,
eip's natEvent, natgw's natGatewayEvent, and eks's systemEgressEvent.
domains/ec2/vpc.SGRule survives because EC2 persists it directly in
SecurityGroupRecord; contracts/network/v1.SecurityGroupRule was expanded
in slice 2 to match it field-for-field so wire bytes are unchanged.

No lifecycle or reliability changes: the NAT add barrier, delete
retry-on-ErrNoResponders, and the inconsistent per-call-site NAT
delivery modes (EIP AssociateAddress and DeleteNetworkInterface both stay
fire-and-forget with no ack) are preserved exactly, as are the golden
wire literals pinned in the characterization tests.
2026-10-09 18:39:02 +10:00
joshsiv-mulga 77ac0f0f78 feat: add contracts/network/v1 for vpc.* realisation routes
Declare the versioned wire vocabulary for the vpc.* control-plane-to-
network-realisation boundary: subjects, payload types, the shared
{success,error} ack envelope and the vpcd-workers queue group, one
file per route family. No NATS I/O, no consumer switched over yet;
the package coexists with the fragmented originals pinned in the
prior characterization commit until slice 3 migrates call sites.
2026-10-09 16:33:03 +10:00
joshsiv-mulga 53697bc762 refactor: move viperblockd fence, abandon and dirty-marker vocabulary to contracts
Move the fence and abandon subjects/DTOs, the dirty bucket name,
DirtyRecord and the shared volume-key pattern out of vbwire and into
contracts/viperblockd/legacy/v1, alongside the package's existing
mount/unmount/delete/sync/config-update routes. vbwire keeps only the
I/O helpers (BindDirtyBucket, ListUnsealedVolumes), now built on the
contract vocabulary instead of defining it.

Record the approved dirty-marker ownership boundary in the contract
README: the Viperblock adapter is the sole producer, viperblockd was
only its transitional custodian. Document the fence and abandon routes
and the dirty bucket in docs/service-interfaces.yaml.
2026-10-09 15:09:22 +10:00
joshsiv-mulga 8bf162fb73 refactor: move the default-VPC subject into contracts/ec2/v1
utils.SubjectEnsureDefaultVpc becomes ec2v1.EnsureDefaultVpcSubject, the
request/reply route between gateway account creation and the daemon.
Only the subject moves; the request and reply bodies are still anonymous
structs on each side and are recorded as such in the contract README.
The layering freeze now allows two utils files.
2026-10-09 13:07:40 +10:00
joshsiv-mulga 4e822fa347 test: characterize EKS add-on v1 compatibility with added fields
Pin which owner writes drop unknown record and manifest fields, that
reads and deletes ignore or erase them, that one undecodable entry fails
a listing, and that v1 wire consumers ignore extra fields.
2026-10-09 08:37:42 +10:00
joshsiv-mulga 692d929b4a refactor: extract EKS add-on guest wire contract
Move the add-on status subject, delivery phase, status report, staged
manifest and internal add-ons response into contracts/eks/v1 and use it
from the handler, gateway and gatewayfetch, replacing the agent's
duplicate. Wire bytes are unchanged, including the internal add-ons body
that the SDK renderer emits with Go field names; compatibility tests pin
the JSON, the guest printf form and the TSV.
2026-10-08 23:02:20 +10:00
joshsiv-mulga cf531cd733 refactor: move telemetry file naming to contract 2026-10-02 14:17:21 +10:00
joshsiv-mulga b975f1ba9d refactor: make legacy EBS messaging explicit 2026-10-01 14:02:02 +10:00
joshsiv-mulga 0b82e14049 refactor: establish legacy Viperblockd sync contract 2026-10-01 12:12:01 +10:00
joshsiv-mulga 94a6e7af25 refactor: establish legacy Viperblockd config contract 2026-10-01 11:57:31 +10:00
joshsiv-mulga 08bd335f0a refactor: establish node status contract 2026-10-01 08:22:26 +10:00
joshsiv-mulga 4b35a2a33d refactor: establish node VM inventory contract 2026-09-30 16:27:39 +10:00
joshsiv-mulga 78fd017e03 refactor: establish telemetry sidecar contract 2026-09-30 16:05:35 +10:00
joshsiv-mulga 5d88a33998 refactor: establish operator storage contract 2026-09-30 15:56:13 +10:00
joshsiv-mulga 6d6275e78d refactor: establish cluster health contract 2026-09-30 15:43:34 +10:00
joshsiv-mulga b49e55a586 refactor: establish cluster discovery contract 2026-09-30 15:35:33 +10:00
joshsiv-mulga 60c9ed47d7 refactor: establish IGW projection contract 2026-09-30 15:18:20 +10:00
joshsiv-mulga ef22698f65 docs: record package-boundary contracts 2026-09-30 15:08:17 +10:00
joshsiv-mulga aa0c36ff4e refactor: establish EC2 command contract 2026-09-30 14:46:31 +10:00