Very early in the development of Omicron, we unconditionally allocated an SNAT IP address for every instance at the time it's created. We never came back to change this. Support for only allocating an SNAT if there's no other external connectivity is tracked in #4317. This issue tracks adding support for creating instances no external connectivity at all: no SNAT, Ephemeral, or Floating IPs.
Today users supply a list of external IPs to create for the instance. We could modify this to be an enum, where a list means "give me these IPs", and we add a variant that means "No external connectivity at all".
Very early in the development of Omicron, we unconditionally allocated an SNAT IP address for every instance at the time it's created. We never came back to change this. Support for only allocating an SNAT if there's no other external connectivity is tracked in #4317. This issue tracks adding support for creating instances no external connectivity at all: no SNAT, Ephemeral, or Floating IPs.
Today users supply a list of external IPs to create for the instance. We could modify this to be an enum, where a list means "give me these IPs", and we add a variant that means "No external connectivity at all".