When developers wants to contribute to Enough, they are expected to have python 2.7* installed and run the steps from the bootstrap file. The environment they already have is likely to interfere in ways that are difficult to predict.
I’ve had good experience embedding the development environment in a docker container and presenting it as a CLI. The developer needs to have docker & bash installed and the onboard steps would be to add one line to the
eval $(docker run --rm enough install)
enough molecule test -s bind
That is assuming the OpenStack credentials are in the environment.
Going forward the CLI could also be useful to implement bootstraping of an entirely new Enough instance, using another domain. This phase currently requires many manual steps on OVH & Gandi and could be performed by providing credentials to the CLI which would then use the OVH & Gandi API.
enough bootstrap --ovh-user foo --ovh-password bar --gandi-user frob --gandi-password nitz
In other words the CLI could be a way to perform all operation on enough, a documented central point to call molecule, ansible-playbook etc.
Creating a piece of software is a slippery slope: it becomes a convenient way to express our darkest NIH symdroms This is the primary reason why I did not propose to have a CLI when creating the first enough playbooks about a year ago, although it has been on my mind all along. I waited until a few patterns emerged that kept being done manually (bootstrap enough and bootstrap the dev environment).
I’m going to implement a CLI and create a merge request to give a concrete example of how it works. It will hopefully help the discussion.