[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: OSTree <3 Anaconda



On Thu, 2014-03-20 at 20:03 +0000, Colin Walters wrote:
> Background
> ----------
> 
> 
> OSTree is a tool to replicate pre-constructed *bootable* filesystem
> trees over plain HTTP, including support for things like GPG
> keysigning. rpm-ostree is a tool which takes RPM content on a
> "compose" server, and stores it into an OSTree repository.
> 
> 
> This model is very useful for any deployment scenario where one wants
> to compose a system from the tested RPM parts, and then efficiently
> replicate it to many client systems. Examples are many cloud
> deployments, "Corporate Standard Build" laptops, all the way down to
> cash registers and embedded devices.
> 
> 
> To make this work, OSTree is not just a tool to download content -
> it's also a set of *required changes* to the operating system content,
> such as /usr/lib/passwd:
> https://sourceware.org/bugzilla/show_bug.cgi?id=16142
> 
> 
> Anaconda
> --------
> 
> 
> For Fedora and derived systems like Red Hat Enterprise Linux, Anaconda
> is by far subsystem impacted the most. While the system is booted
> normally, while you are inside a chroot, for the most part the system
> "feels" like a traditional Unix system. You have writable /etc and
> /var.
> 
> 
> However, really on disk, the operating system lives in
> e.g. /ostree/deploy/fedora-atomic/deploy/c79ba9b3c245fa5e256aa9217db5f4954b2639d1504d02462277cae3c30473ae.0
> 
> 
> Anaconda however has a constant ROOT_PATH that needs to be split -
> some things like in the physical root, others live in what I placed in
> "iutil.getSysroot()".
> 
> 
> There is no /etc/fstab on the *physical* filesystem for example - it
> is really in
> /ostree/deploy/fedora-atomic/deploy/c79ba9b3c245fa5e256aa9217db5f4954b2639d1504d02462277cae3c30473ae.0/etc/fstab.
> 
> 
> Furthermore, OSTree wants to be in charge of setting bootloader
> configuration. (This is how the atomic updates work). So we have a
> multi-stage setup where Anaconda lays down the defaults (but no boot
> entries), then we tell OSTree to write the boot entries.
> 
> 
> pykickstart
> -----------
> 
> 
> This patch is pretty simple - it's defining a new "ostreesetup" verb
> that holds data.
> 
> 
> blivet
> ------
> 
> 
> The required changes here are similar to Anaconda - we need a
> distinction between ROOT_PATH and "targetSysroot".
> 
> 
> Future
> ------
> 
> 
> These patches are for early architectural feedback. The next step
> I'll take is to factor out some of the "quick hack" things that should
> be fixed elsewhere. For example, OSTree should know about
> /boot/extlinux in addition to /boot/syslinux. Also,
> https://bugzilla.gnome.org/show_bug.cgi?id=726757
The patches look less awful than I'd expect. :) They need some polishing
from the coding style's perspective and some minor tweaks (blivet's
targetSysroot should be set with a function as is the iutil's
equivalent), but otherwise they look quite okay to me.

Once you are happy we the patches please rebase them on master branches
of the projects and send them to anaconda-patches lists fedorahosted org
for a review, preferably with the 'git format-patch && git send-email'
tool chain.

Thanks for your effort!

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]