-
Notifications
You must be signed in to change notification settings - Fork 34
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
RFE: Allow manual update checks and reboots #498
Comments
/cc @jlebon @cgwalters to check if this makes sense and is compatible with rpm-ostree's proper usage (not sure if this functionality should be exposed to the user through rpm-ostree instead). |
The RFE itself makes a lot of sense to me! Before adding a CLI, I'd definitely lean towards keeping the focus on integration with rpm-ostree instead to keep the UX simple. E.g. rpm-ostree already knows how to present available updates, diffs, etc... So implementation-wise, we should probably brainstorm on what the API between rpm-ostree and update drivers should be. Maybe it's UNIX sockets, or D-Bus, etc... E.g. for D-Bus, we could standardize on a well-known bus name that we expect update drivers to acquire and then you'd have a |
I agree that it's more user-friendly to just have rpm-ostree communicate with the update driver, instead of referring the user to the update driver and learn another CLI.
#514 added a POC D-Bus interface to Zincati (currently the bus name for now is |
Like @jlebon mentioned, we should at least have a |
Random comment on this, I think a common use case for the "manual update" path will be to have Zincati actually be "almost disabled" (systemd unit enabled, but config files neutering automatic updates) so that all updates are done manually by a sysadmin. (See discussions in https://discussion.fedoraproject.org/t/28946.) |
@jlebon thanks for mentioning this. We have a couple of FCOS instances but not enough to warrant a zincati infrastructure. On the other hand, we must control the reboot windows and would rather use a generic automation tool via ssh (e.g. Ansible) for upgrading the instances. For that, such a CLI is needed. |
@kai-uwe-rommel correct me if I misread your usecase, but I think you'd be properly served by doing #245 and letting Ansible own such file. |
@lucab yes, may be. But that feature does not yet exist, right? |
@kai-uwe-rommel correct. The specific context was, going forward, how to better serve usecases/flows like your which are really a mix of automation plus human-control. |
Another use case for this feature could be for situations such as #554 (comment) where a user wants an immediate reboot into a staged update. |
Some concerns raised regarding this feature: #554 (comment) |
I like the idea that Zincati offer some level of CLI interaction / introspection. Initiating actions like |
This one specifically is now exposed to systemd:
Although it is meant as a human/debugging helper, not as a machine API. |
I think we bumped up into this overall topic again in https://discussion.fedoraproject.org/t/unable-to-upgrade-to-35-20211029-3-0/34925/4?u=dustymabe. Basically if we're going to break the user expectation that reboot will land them in the new deployment we need to feed them something else. "Don't use $that, use $this", works better than "Don't use $that, just wait". |
Uhm, for that specific post the user did configure a So yes a |
Is there any update on this to allow bypassing the set update window for the staged upgrade? |
@mitchellmaler no, otherwise it would have been noted here or in an associated PR. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@lucab any update on this issue? |
Whoops, maybe I pinged the wrong person: @kelvinfan001 @jlebon @dustymabe @dghubble is there anyone working on this? |
Not currently, but I'm hoping that we'll be able to address this UX gap in a larger rework of Zincati. Related: containers/bootc#337 (comment) |
Feature Request
Desired Feature
Allow for manual, safe, Zincati-driven update checks and reboots.
Currently, in rpm-ostree (v2021.2 and later), if a user tries to
rpm-ostree upgrade
when an update driver (e.g. Zincati) "owns" updates on that machine, rpm-ostree will correctly refuse by default and instruct the user to refer to the updates driver's (Zincati's) documentation, implying that the user should perform an upgrade via the updates driver, instead. However, there is actually no convenient/user-friendly way to perform an upgrade immediately through Zincati, either.Stemming from the conversation in coreos/rpm-ostree#2566 (comment), it would be nice if an admin could manually get Zincati to immediately check for an update and possibly reboot into it.
A possible use case for this feature would be when admins know that there is a new update available that contains a bug fix/feature and they want it immediately, but Zincati has not automatically updated into that release due to not checking for updates frequently enough, reboot strategy restraints, or phased rollouts (and wariness). Current ways admins could get around this:
immediate
reboot strategy. Then restart Zincati.rpm-ostree upgrade --bypass-driver
.1.
does not seem very user-friendly, and2.
is potentially unsafe as rpm-ostree has no knowledge of update graphs, barrier releases, reboot scheduling windows, etc.Example Usage
check-update
Include a command for telling Zincati to check for updates immediately. This should probably temporarily set Zincati's rollout wariness to
0.0
in order to hint Cincinnati to respond with the latest possible release.finalize-update
Also include a
finalize-update
command to override the reboot strategy, unlock the staged deployment, and reboot immediately.If strategy allows reboot now, machine will reboot:
If strategy does not allow reboot:
Force a reboot, overriding the reboot strategy:
Note: the
--force
flag (as opposed to force by default) is useful because Zincati has aDEFAULT_REFRESH_PERIOD_SECS
that periodically checks for permission to reboot after an update is staged.finalize-update
should get Zincati to check for permission immediately.Other Information
Relevant rpm-ostree PRs and issues:
rpm-ostree upgrade
when using an update driver rpm-ostree#2536The text was updated successfully, but these errors were encountered: