Re: Dynamic config for apps - download file(s) on boot, or mounting a network filesystem ?

  • From: Antti Kantee <pooka@xxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Sat, 14 Apr 2018 23:09:53 +0000

On 14/04/18 17:37, lemonnierk@xxxxxxxxx wrote:> Generating a .conf is easy enough, but I don't really know how to feed

it to haproxy. By hand I'd generate an iso file and start the unikernel
with that mounted as /etc/haproxy, but that'd required developping
something ton run on the hypervisors to generate the iso, not ideal.

Have a look at cookfs. You can use it to generate components, which when baked into an image, have their files mapped into memory. You need to have separate images, and a toolchain, so it might not be what you what, though.

Is there some way to run something before the "main binary" that got
baked is started somehow ? I'd be great to be able to run something like
wget <url>/config?id=<XXX> for example. I suppose that requires
including two binaries

Yes, you can do that. You have to write the config file by hand. Be warned, that while "kernel" process state is separate, libc process state and userspace symbol is the same. So, you can't run two arbitrarily complex programs, and essentially the only way to know if two programs are compatible is to test them. The book describes multiple programs at least to some extent.

I suppose what I've been wanting to do for years would work too :
mounting any kind of network filesystems, but as far as I know it's
still not possible ?

Rump kernels support at least nfs and smb, and you could probably figure out how to use those in Rumprun with reasonable effort. With rumpctrl it would be even less effort, but that may or may not provide the amount of moving parts that you'd like.

As usual, there probably isn't precise documentation telling how to do exactly what you want to do. So, you'll have to figure out a bunch of details by yourself. If you're really feeling energetic, write the documentation too. Good luck! ;)

Other related posts: