oxidecomputer / oxidecomputer/omicron

Controls for available CPU platforms

Open
#9,078 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement release notes virtualization
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

https://github.com/oxidecomputer/omicron/pull/8728 added CPU platforms to instances and the API to set them, but any instance can have any (or no) CPU platform set on it. You can set instances to amd_turin when there are no Turin sleds around; this will effectively produce an instance that can't be started. You can set instances to amd_milan when there are no Milan sleds, which is needlessly restrictive (if you are a new customer in five years, I'm thinking about you!)

I think conceptually a list of allowed families that lives alongside quotas is probably most fitting? in an ideal world maybe even:

  • an API to list available CPU families and hardware
  • an (same?) API that includes CPU lineage information (what CPU platform is a subset of what)
    • if you're in the future after Turin, and disable Turin because you know you're in the future, we should probably suggest or just also disable Milan as it's even older

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

Review PR 8728 and the existing instance CPU-platform API first, then compare its behavior with the quota controls. The issue proposes allowed CPU families alongside quotas, plus APIs for available hardware and CPU lineage; done requires agreeing on that scope and the resulting controls.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.