oxidecomputer / oxidecomputer/omicron

have propolis-servers started by omicron listen on arbitrary ports

Open
#2,457 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

development
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

right now we hardcode const PROPOLIS_PORT: u16 = 12400 in omicron, which at the very least isn't great for things like integration tests where we'd like to be able to start multiple mock servers simultaneously on localhost. consider binding port 0 instead to let the kernel do the allocation. (update nexus's DB to store the full address + port of the API endpoint rather than just the address, add logic to inform nexus of what port we were allocated)

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

Locate the hardcoded PROPOLIS_PORT in omicron and trace how propolis-servers are started and how Nexus stores the API endpoint. Follow the integration-test setup to understand the required address format and allocation flow. Done means servers can bind arbitrary ports, Nexus receives the allocated port, and the endpoint is stored with its full address and port.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, databases, testing
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.