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
