From 72f4307ebbb3e041d3241f0a5a39f2d06741e0d5 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sat, 4 Aug 2018 23:39:22 -0700
Subject: [PATCH] Add support for Docker Machine with Digital Ocean driver

---
 defaults/main.yml         |  4 ++++
 tasks/global-setup.yml    |  1 -
 tasks/main.yml            |  6 +++---
 tasks/register-runner.yml | 14 ++++++++++++--
 4 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/defaults/main.yml b/defaults/main.yml
index ec7929a..3f2f49c 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -33,3 +33,7 @@ gitlab_runner_ssh_password: ''
 gitlab_runner_ssh_identity_file: ''
 # Runner Locked
 gitlab_runner_locked: 'false'
+
+# Runner machine
+gitlab_runner_machine_idle_nodes: 0
+gitlab_runner_machine_idle_time: 60
diff --git a/tasks/global-setup.yml b/tasks/global-setup.yml
index 403e175..0844ff5 100644
--- a/tasks/global-setup.yml
+++ b/tasks/global-setup.yml
@@ -16,4 +16,3 @@
     state: present
     backrefs: yes
   notify: restart_gitlab_runner
-
diff --git a/tasks/main.yml b/tasks/main.yml
index afd14ac..271996f 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -7,9 +7,9 @@
   import_tasks: install-redhat.yml
   when: ansible_os_family == 'RedHat'
 
-- name: Set global options
-  import_tasks: global-setup.yml
-
 - name: Register GitLab Runner
   import_tasks: register-runner.yml
   when: gitlab_runner_registration_token != ''
+
+- name: Set global options
+  import_tasks: global-setup.yml
diff --git a/tasks/register-runner.yml b/tasks/register-runner.yml
index 04d187f..783b782 100644
--- a/tasks/register-runner.yml
+++ b/tasks/register-runner.yml
@@ -30,7 +30,17 @@
     --cache-s3-access-key '{{ gitlab_runner_cache_s3_access_key }}'
     --cache-s3-secret-key '{{ gitlab_runner_cache_s3_secret_key }}'
     --cache-s3-bucket-name '{{ gitlab_runner_cache_s3_bucket_name }}'
-    --cache-s3-insecure '{{ gitlab_runner_cache_s3_insecure }}'
-    --cache-cache-shared '{{ gitlab_runner_cache_cache_shared }}'
+    --cache-s3-insecure='{{ gitlab_runner_cache_s3_insecure }}'
+    --cache-cache-shared='{{ gitlab_runner_cache_cache_shared }}'
     {% endif %}
+    --machine-idle-nodes '{{ gitlab_runner_machine_idle_nodes }}'
+    --machine-idle-time '{{ gitlab_runner_machine_idle_time }}'
+    --machine-machine-driver 'digitalocean'
+    --machine-machine-name 'gitlab-runner-autoscale-%s'
+    --machine-machine-options 'digitalocean-image=coreos-stable'
+    --machine-machine-options 'digitalocean-ssh-user=core'
+    --machine-machine-options 'digitalocean-access-token={{ gitlab_runner_digital_ocean_token }}'
+    --machine-machine-options 'digitalocean-region={{ gitlab_runner_digital_ocean_region }}'
+    --machine-machine-options 'digitalocean-size={{ gitlab_runner_digital_ocean_size }}'
+    --machine-machine-options 'digitalocean-private-networking'
   when: configured_runners.stderr.find('\n' + gitlab_runner_description) == -1
-- 
GitLab