oxidecomputer / oxidecomputer/omicron
Controls for available CPU platforms
Nobody has claimed this yet.
- 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
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
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