oxidecomputer / oxidecomputer/omicron
Allow creating an instance with no external connectivity
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
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 https://github.com/oxidecomputer/omicron/issues/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".
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in nexus/types/src/external_api/params.rs at the external IPs parameter, then trace how that value is handled during instance creation. Define the no-external-connectivity case alongside the existing list form and update the affected creation flow. Done means an instance can be created with no SNAT, Ephemeral, or Floating IPs, while requesting specific external IPs still works.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100