-
Notifications
You must be signed in to change notification settings - Fork 512
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
fixes for pluto #4032
fixes for pluto #4032
Conversation
packages/os/pluto.service
Outdated
[Install] | ||
RequiredBy=preconfigured.target | ||
RequiredBy=settings-applier.service |
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.
I'd prefer to comment here that pluto requires the settings-applier service to commit its changes added to an open transaction.
This may be a clear responsibility implied by its position in the service tree that I've forgotten, though. If it's an obvious detail we can omit.
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.
I'd prefer to comment here that pluto requires the settings-applier service to commit its changes added to an open transaction.
Added some comments. Let me know if it's still not clear; this is an under-documented area of the system.
@@ -11,6 +11,7 @@ exclude = ["README.md"] | |||
|
|||
[dependencies] | |||
bytes = "1" | |||
constants = { path = "../../constants", version = "0.1" } |
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.
Where is my dollar? 🤑
settings-applier.service is expected to be the last unit in the chain before initial system configuration is done. Ensure that pluto runs and completes successfully before it starts. Signed-off-by: Ben Cressey <bcressey@amazon.com>
When settings-applier.service starts, it runs settings-committer, because it expects that sundog will have added generated settings to the launch transaction, and then runs thar-be-settings to apply the changes. However, if pluto runs, it will have already committed any settings from sundog, and then directly applied the settings via apiclient. This introduces a different mode for system boot depending on whether pluto is installed, and also worsens boot time as thar-be-settings is relatively slow. Fix this by having pluto add its own generated settings to the launch transaction, so that settings-committer always has pending changes to commit, and so that thar-be-settings only runs once. Signed-off-by: Ben Cressey <bcressey@amazon.com>
Issue number:
Fixes #3828
Description of changes:
Conceptually, these changes make
pluto
act a bit more like a settings generator: it now runs in betweensundog
andthar-be-settings
, and it letsthar-be-settings
handle the actual commit.Testing done:
Annotated output after these changes:
Terms of contribution:
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.