diff options
author | Colin Walters <walters@verbum.org> | 2018-02-22 15:27:59 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-04-12 14:55:12 +0000 |
commit | eb506c759c666af2461f1ba3dda4e31ea49ebc41 (patch) | |
tree | ec78dcc19982e3b14545ad2b22902a85c9a7e4ef /src/boot | |
parent | ff50495f67a95c9b2fef5f9b84bc91469a46eb27 (diff) | |
download | ostree-eb506c759c666af2461f1ba3dda4e31ea49ebc41.tar.gz |
Add concept of "staged" deployment
Add API to write a deployment state to `/run/ostree/staged-deployment`,
along with a systemd service which runs at shutdown time.
This is a big change to the ostree model for hosts,
but it closes a longstanding set of bugs; many, many people have
hit the "losing changes in /etc" problem. It also avoids
the other problem of racing with programs that modify `/etc`
such as LVM backups:
https://bugzilla.redhat.com/show_bug.cgi?id=1365297
We need this in particular to go to a full-on model for
automatically updated host systems where (like a dual-partition model)
everything is fully prepared and the reboot can be taken
asynchronously.
Closes: https://github.com/ostreedev/ostree/issues/545
Closes: #1503
Approved by: jlebon
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/ostree-finalize-staged.service | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/boot/ostree-finalize-staged.service b/src/boot/ostree-finalize-staged.service new file mode 100644 index 00000000..570138cd --- /dev/null +++ b/src/boot/ostree-finalize-staged.service @@ -0,0 +1,36 @@ +# Copyright (C) 2018 Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# For some implementation discussion, see: +# https://lists.freedesktop.org/archives/systemd-devel/2018-March/040557.html +[Unit] +Description=OSTree Finalize Staged Deployment +ConditionPathExists=/run/ostree-booted +DefaultDependencies=no + +RequiresMountsFor=/sysroot +After=basic.target +Before=multi-user.target final.target +Conflicts=final.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStop=/usr/bin/ostree admin finalize-staged + +[Install] +WantedBy=multi-user.target |