Auto-scale runtime modification of docker+machine VM
Problem to solve
Add an ability to run commands against the VM created by docker+machine auto-scale executor, so that we can make host-level configurations without needing to maintain lots of separate runners/images.
Lots of teams have varying requirements for their underlying OS running Docker itself, and it is a hassle to have to maintain these settings in lots of separate VM images when we could just specify a couple of commands on the job.
Example: add some entries to /etc/hosts or alter some sysctls when spinning up new VMs created with the docker+machine executor
This would be outside of the Docker environment and prior to the before_script portion of the job. It would be acceptable to pass these commands via the script or env variable.
Intended users
GitLab CI administrators who provide GitLab CI as a service to a broad set of teams in a large enterprise.
- Delaney (Development Team Lead)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
- Sam (Security Analyst)
Personas are described at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/ -->
Proposal
could possibly use "docker-machine ssh" to exec a script
Possible workarounds by using "userdata" (with the docker-machine azure driver, it's called --azure-custom-data and with openstack it's called --openstack-user-data-file) when spinning up the VM.
Permissions and Security
Needs to be able to execute commands on the host to modify VMs created by docker.
What is the type of buyer?
Premium enterprise customer with >1,000 developers