oxidecomputer / oxidecomputer/omicron
Implement Project-level defaults
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
As part of RFD 21 and the discussion on #1003, we'd like to implement defaults at the level of a Project. The canonical example from RFD 21 is a default VPC Subnet, in which we create NICs for a guest if one is not explicitly provided in the client request. Defaults should be configurable resources, at the Project scope, for example via CRUD on an endpoint like /organizations/{org}/projects/{project}/defaults. We'll need a new table in CRDB to manage these. Below is a preliminary list of the defaults we'd like to include, but more should be added as they make sense.
- VPC
- VPC Subnet
- Image from which guest instances are created
- Whether guest NICs default to dual IPv4/v6, or exactly one of those. As an example, if the default is to provide both versions and the client requests only a specific IPv4 address, an IPv6 address is added automatically.
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 by reading RFD 21 and the discussion on issue #1003 to establish the intended Project-level defaults model. Then inspect the existing Project-scoped CRUD endpoints and CRDB schema patterns. Done means agreeing on the supported defaults, exposing their CRUD endpoint, and persisting them in a new table.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100