blueprint: remove the sshkey customization #928
Merged
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.
This is something I've mentioned a few times in the past but never got around to doing. With the upcoming changes to partitioning (#926), I think this is a good opportunity to start with a proof of concept and the canonical example for customization simplification in images. The general idea is that blueprints in osbuild-composer are the canonical, user-facing version of the structure. The images counterpart has no obligation to maintain backwards compatibility, or even have the same exact structure as the real blueprints.
Extra considerations:
blueprint
, to avoid any confusion about what they are. In that case, any common structure would be considered incidental, and there would be much less implication about the structures here being a separate implementation of the same configs.Both the sshkey and users customizations have been around since the beginning of time [1]. The users customization was always a superset of the sshkey, so we have code in blueprints to convert sshkeys into users.
The blueprint code in images is not exposed directly to users. The code responsible for deserializing blueprint toml files lives in osbuild-composer and is directly translated to the equivalent types in osbuild/images. We can simplify the code and types here to only contain the customizations that are strictly necessary and we don't need to maintain backwards compatibility.
The blueprint conversion code in osbuild-composer should convert all sshkeys to users before passing them down to osbuild/images functions.
[1] 967b0e8