oxidecomputer / oxidecomputer/omicron

Packaging: Make a decision on the packaging of the host OS vs zones

Open
#2,289 1 comment 0 reactions 3 assignees View on GitHub

@ahl is already working on this.

Since Jan 31, 2023.

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

Description

to explain:

In the 1/31 Update Sync, we unearthed some confusion about the packaging of pieces of the host OS and corresponding zones.

Namely, there are a handful of different options in the space:

  • We could treat the "host OS" as one package, and "all the zone images" as another package
  • We could treat the "host OS and all zone images" together as one package
    • Note: "How we package things" does not need to exactly correspond with "how we lay down the bits on-disk". When we apply an update, we can split up the package, and send it to different places. (Should we? That's a different question!)
  • We could treat the "host OS" as one package, which includes some zone images (e.g., Sled Agent and Propolis, which may have tight coupling) and other zone images as other packages.

We've discussed pros and cons of these things in a variety of contexts:

  • Fewer packages are simpler, and make it easier to ensure that versions stay in sync
  • But smaller, fine-grained packages will make it easier to update stuff independently, preserve uptime, and avoid using portions of the ramdisk

To clarify, this is a decision where we can change the output over time. But we do need to make a decision for MVP, and document it in RFD 300.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.