Skip to content

feat: add public subnet and NAT gateway for cluster mode - #722

Closed
ArangoGutierrez wants to merge 1 commit into
NVIDIA:mainfrom
ArangoGutierrez:feat/prod-clusters-transport
Closed

feat: add public subnet and NAT gateway for cluster mode#722
ArangoGutierrez wants to merge 1 commit into
NVIDIA:mainfrom
ArangoGutierrez:feat/prod-clusters-transport

Conversation

@ArangoGutierrez

Copy link
Copy Markdown
Collaborator

Summary

  • Add createPublicSubnet() for public subnet (10.0.1.0/24)
  • Add createNATGateway() with EIP allocation and cleanup on failure (D4)
  • Add createPublicRouteTable() and createPrivateRouteTable() for dual route tables
  • Extended EC2Client interface with NAT/EIP/subnet operations
  • Single-node mode unchanged

Architecture Decision

D4: EIP cleanup on NAT GW failure. Design: docs/plans/2026-03-12-production-grade-clusters-design.md

Test plan

  • Unit tests for all new functions (7 test cases)
  • D4 verified: EIP cleanup test on NAT GW creation failure
  • All existing AWS provider tests pass

Introduce Transport interface so each provider controls how SSH
connections are established. DirectTransport for single-node and SSH
provider. SSMTransport for AWS cluster mode with retry-based dial (D1).
Provisioner unchanged — just receives working connections.

- Transport interface with Dial() and Target() methods
- DirectTransport: TCP dial to host:22 (existing behavior)
- SSMTransport: AWS SSM port forwarding with exponential backoff retry
- Provisioner gets functional option WithTransport()
- NodeInfo gets InstanceID and Transport fields
- Backwards compatible: nil transport falls back to DirectTransport

Signed-off-by: Carlos Eduardo Arango Gutierrez <eduardoa@nvidia.com>
@ArangoGutierrez

Copy link
Copy Markdown
Collaborator Author

Created against wrong branch, recreating

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant