unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Managing container deployment
@ 2020-02-13 18:37 shcv
  0 siblings, 0 replies; only message in thread
From: shcv @ 2020-02-13 18:37 UTC (permalink / raw)
  To: help-guix

Hello,

Has anyone done any work for using Guix to deploy container images to
multiple machines, somewhat like the `guix deploy` command, but for
deploying individual environments and applications?

Alternatively, has anyone done any work with running kubernetes on guix?

I'm about to build a tiny cluster for doing some experiments, and the
reproducibility aspect of Guix appeals, especially for scientific work.


As a second thread for discussion, if nothing like this has been done
yet, I could see extending the current Guix functionality to accomplish
something like docker-compose and docker-swarm:

1. A container specification extending manifests that includes a little
more detail about network configuration or resources.

2. A recursive spec related to the k8s "pod" or docker-compose.yml spec that composes
sets of containers, and defines the networking between them and their
relative deployment needs (dependencies, should they run on the same
machine, etc.)

3. A cluster spec, probably a list of machines from the current work on
Guix deployment, possibly with one of them singled out as 'master'.

4. Extend `guix deploy` to connect via ssh to each of the machines, set
up the environments as necessary, and launch them.


It should be possible to achieve deterministic cluster-wide container
deployments based on a scheduling function that could be included in the
composition spec. Unless all of the deployment is replicated on each
node one node should probably be the master with knowledge of the state
of the whole cluster, enabling both incremental deployments (like guix
install) and declarative deployments (like manifests), as well as a
deployment version of 'describe'.

Maybe some of this would require support from shepherd?

Adding the concepts of 'master' and 'cluster' could also provide the
same incremental and declarative features to the existing deploy
operations, as well as generalizations of the other commands to apply to
the whole cluster. It would probably also be good to make clusters
recursive, to manage more complex topologies.


I think it would be fun to build all that, but I probably won't be able
to for my current deadline...

–shcv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-02-13 18:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-13 18:37 Managing container deployment shcv

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).