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

Assignee Loading
Time tracking Loading