Skip to content

Implement the Internet Gateway concept #2154

@bnaecker

Description

@bnaecker

An important concept from RFD 21 is the Internet Gateway. Briefly, the gateway is the main API object that allows instances to access the internet from a VPC Subnet. Without a gateway, an instance cannot make outbound connections outside of the VPC Subnet. Also, the gateway is intended to house the "pool" of external IP addresses (both Ephemeral and Floating) that can be used by instances to make those outbound connections.

Today, those addresses are created by directly pulling an address from the IP Pool. Those objects are intended to only be manipulated that way by operators, who can assign a IP Pool or one of its ranges to an Internet Gateway. It's from the gateway that an instance derives its external IP address.

This issue tracks implementation of the Internet Gateway. There are a bunch of pieces to this:

  • Implement the Internet Gateway database and API objects
  • Create default Internet Gateway for a VPC, and delete it when the VPC is deleted
  • CRUD on Internet Gateway objects. This includes adding addresses from an IP Pool or one of its ranges.
  • Modifying the instance creation API to refer to an Internet Gateway instead of an IP Pool, when selecting its external IP addresses.
  • Update the router API to allow specifying an Internet Gateway in routes for a VPC Custom Router

There's a related set of work here about how we push out updates to OPTE when an Internet Gateway is operated on. Working through the possibilities:

  • Adding an IG -> no updates needed, since nothing could be referring to that by definition.
  • Adding or removing IP addresses or a range to an IG -> Need to update any OPTE instances that use the IG in its routing decisions.
  • Adding or removing an IG from a routing table -> Need to update OPTE, but this is tracked under pushing out modifications to the routing table.

Metadata

Metadata

Assignees

Labels

customerFor any bug reports or feature requests tied to customer requestsmvpnetworkingRelated to the networking.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions