brinkmanlab / galaxy-container

Galaxy container generation and cloud deployment recipes. Uses Buildah, Ansible, and Terraform.
MIT License
0 stars 0 forks source link

Implement Galaxy runner for Nomad #8

Open innovate-invent opened 3 years ago

innovate-invent commented 3 years ago

https://pypi.org/project/python-nomad/ https://github.com/hashicorp/levant - relevant but not directly useable

The runner should take a HCL template and populate it with the job specifics. This way the template can be swapped out with the deployment and every possible parameter for running a job on Nomad doesn't need to be forwarded via the Galaxy config.

innovate-invent commented 3 years ago

The k8s and docker runners need to be rewritten to accept templates as well. For k8s, it should take a k8s YAML file, and for docker it should take a docker compose YAML file. For k8s, pykube needs to be replaced with https://github.com/kubernetes-client/python For docker, compose functionality can be directly imported from https://github.com/docker/compose

All YAML files should be passed through a templating engine first. Because YAML uses # as comments, it would be ideal to use Galaxies existing Cheetah template engine as Cheetah uses # to demark template directives.