-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
instance spec rework: remove most dependencies on InstanceSpecV0
from propolis-server
#757
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implement conversions between InstanceSpecV0 and the internal spec type and start converting uses of the former to the latter. The notable exception is machine initialization, which still relies on an InstanceSpecV0.
iximeow
approved these changes
Sep 4, 2024
hawkw
approved these changes
Sep 10, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, this looks great. I had some very minor nits, but none of them are major issues!
hawkw
reviewed
Sep 11, 2024
hawkw
reviewed
Sep 11, 2024
Co-authored-by: Eliza Weisman <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(Part 6/X in the instance spec rework; see #735.)
Define propolis-server's internal representation of a VM component manifest (the
Spec
type) and switch almost everyone in the server over to it. (The exception is the live migration preamble; this will be dealt with in a future PR that moves migration compatibility checks from api-types to server.)spec::Spec
type and some helper types, like internal representations of aDisk
and aNic
.InstanceSpecV0
public-API type. Converting to a versioned spec is infallible, but conversion from a versioned spec (which can be well-formed but not valid) is fallible.Option
s for components (the main PCI device, the P9 device, and the P9 filesystem adapter) with a maximum cardinality of 1.Known warts in this change that are on deck to be fixed later in this series:
Disk
andNic
types duplicate backend names: both the types themselves and theirdevice_spec
members containbackend_name
fields, and these need to be identical or hilarity will ensue. Subsequent changes will remove thebackend_name
field from these types and just rely on the backend name that's in the device spec.Tests: cargo test, PHD. (It probably wouldn't hurt for me to run this in an Omicron dev cluster, either. I can give that a try before merging.)