Skip to content

feat: add AWS EC2 Elastic IP management components#5337

Open
felixgateru wants to merge 6 commits into
superplanehq:mainfrom
felixgateru:feat/aws-elastic-ip
Open

feat: add AWS EC2 Elastic IP management components#5337
felixgateru wants to merge 6 commits into
superplanehq:mainfrom
felixgateru:feat/aws-elastic-ip

Conversation

@felixgateru

@felixgateru felixgateru commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

What changed

Added AWS EC2 Elastic IP management components:

  • AllocateElasticIP
  • ReleaseElasticIP
  • ManageElasticIP (associate and disassociate via operation picker)

Why

To support allocating, associating, disassociating, and releasing Elastic IP addresses directly from SuperPlane workflows, covering common static-IP, failover, and cleanup use cases without leaving the canvas.

How

Backend

  • Added EC2 Elastic IP component implementations for allocate, release, and associate/disassociate.
  • Added client methods for AllocateAddress, ReleaseAddress, AssociateAddress, DisassociateAddress, and DescribeAddresses.
  • Added integration resource listers scoped by region:
    ec2.elasticIp — pick allocated Elastic IPs (Release, Associate)
    ec2.elasticIpAssociation — pick active associations (Disassociate)
    ec2.publicIpv4Pool, ec2.customerOwnedIpv4Pool, ec2.ipamPool — pool pickers for Allocate
  • Extended Allocate Elastic IP with an IP source picker matching the AWS console (Amazon pool, BYOIP, customer-owned, IPAM), with conditional pool fields and optional specific address.
  • Added output payload types, examples, validation helpers, and backend tests for all components.
  • Updated AWS component registration and docs/components/AWS.mdx.

Frontend

Added mapper components and tests for allocate, release, and associate Elastic IP.
Wired Elastic IP and association pickers, plus IP source and pool metadata on the canvas.
Added execution details focused on user-friendly fields (Public IP, Operation, Region) rather than raw AWS IDs.
Registered components and associate/disassociate state badges in the AWS mapper index.

Demo

@superplanehq-integration

Copy link
Copy Markdown

👋 Commands for maintainers:

  • /sp start - Start an ephemeral machine (takes ~30s)
  • /sp stop - Stop a running machine (auto-executed on pr close)

@felixgateru felixgateru force-pushed the feat/aws-elastic-ip branch from 4530ba7 to 1bc5371 Compare June 11, 2026 15:27
@felixgateru felixgateru marked this pull request as ready for review June 11, 2026 15:27
Comment thread pkg/integrations/aws/ec2/manage_elastic_ip.go
@felixgateru felixgateru force-pushed the feat/aws-elastic-ip branch from 1bc5371 to c29ea4a Compare June 12, 2026 07:30
Comment thread web_src/src/pages/app/mappers/aws/ec2/manage_elastic_ip.ts
Comment thread pkg/integrations/aws/ec2/manage_elastic_ip.go
Comment thread pkg/integrations/aws/ec2/allocate_elastic_ip.go
Comment thread web_src/src/pages/app/mappers/aws/ec2/manage_elastic_ip.ts
Comment thread pkg/integrations/aws/ec2/resources.go
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
@felixgateru felixgateru force-pushed the feat/aws-elastic-ip branch from 3a18285 to 8bff1d3 Compare June 12, 2026 14:59

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8bff1d3. Configure here.

Type: resourceType,
Name: elasticIPResourceName(address),
ID: address.AllocationID,
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Classic EIPs appear in pickers

Medium Severity

Elastic IP resource listers return every DescribeAddresses entry without checking domain. Components allocate and document VPC-only (domain: vpc) behavior, so pickers can surface legacy standard addresses that fail or behave unexpectedly on associate and release against VPC instances.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 8bff1d3. Configure here.

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