Re: rumpbake support for baked-in rootfs
- From: Antti Kantee <pooka@xxxxxx>
- To: rumpkernel-users@xxxxxxxxxxxxx
- Date: Mon, 08 Jun 2015 05:27:14 +0000
On 05/06/15 16:03, Martin Lucina wrote:
rumpbake now accepts multiple '-R PATH' options. Each -R option adds the
contents of PATH to the root filesystem for the unikernel we are baking.
1) I'd like to use this to include a stub /etc directly in the unikernel
image *by default*, so that my rump-* "packaging" for nginx and other
software does not need to include its own stub /etc. This is also why
multiple -R options are allowed, so that you can add to / override the
default contents if you wish.
It would indeed be nice to have some usable /etc by default.
3) It begs the wider question of what to do with "rumprun iso". This
currently produces an ISO image with a "root" filesystem of its own, mostly
so that it can get at the rumpconfig data to configure the unikernel. Also,
"rumprun iso" does not actually *run* anything, so it seems like this
functionality is in the wrong place.
With my support for a baked-in rootfs the extra "root" filesystem for
rumpconfig is no longer needed, however the "make an iso" functionality
would have to be done in/depend on rumpbake.
Well, not only the config, but also the data. I did create isos with
large data partitions for the mpg123 unikernel, and anything that loads
the data into memory as part of the bootstrap process is not a
replacement. It's not hard to imagine that the same size concern would
apply also to e.g. web servers and databases, so you really need a
runtime block device driver to support the general case.
Thoughts?
I don't think -R should be committed without more thought.
We need to agree on the big picture first before we debate details. The
toolchain is now:
1) compilation
2) baking to produce a deployable image
3) deployment
Compilation is more or less finalized (at least as soon as someone does
the rename ;) so we can thankfully leave it out of the discussion.
As far as it seems logical to me in my current state of
mind/understanding, the data and code should be specified in step 2.
Configuration (e.g. /etc/passwd, keys, etc.) should be specified in step
3, not step 2. With that in mind, adding -R to step 2 seems like the
wrong place.
It might be useful to crunch out a few scenarios. I can do some in a
few days.
Other related posts: