oxidecomputer / oxidecomputer/omicron

Allow creating an instance with no external connectivity

Open
#9,003 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug networking
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.