From c6425d08984d228bb61aa765e14160be798cd458 Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Mon, 13 May 2019 13:42:23 +0100
Subject: [PATCH] Support arbitrarily named Docker drivers

Currently we configure daemon.json to use either devicemapper or overlay
as the storage driver. We should simply pass through whatever is
configured for docker_storage_driver.

Change-Id: Id4423030b5483fe4ecd4f324bc25800e5444fd63
Story: 2005649
Task: 30932
---
 ansible/roles/docker/defaults/main.yml                     | 3 +--
 ansible/roles/docker/tasks/main.yml                        | 7 -------
 ansible/roles/docker/templates/daemon.json.j2              | 2 +-
 etc/kayobe/docker.yml                                      | 3 +--
 .../notes/docker-storage-driver-7d560e7d350b14ba.yaml      | 6 ++++++
 5 files changed, 9 insertions(+), 12 deletions(-)
 create mode 100644 releasenotes/notes/docker-storage-driver-7d560e7d350b14ba.yaml

diff --git a/ansible/roles/docker/defaults/main.yml b/ansible/roles/docker/defaults/main.yml
index 5f0c82771..59165a251 100644
--- a/ansible/roles/docker/defaults/main.yml
+++ b/ansible/roles/docker/defaults/main.yml
@@ -1,6 +1,5 @@
 ---
-# Name of the docker storage driver. Supported values include 'devicemapper'
-# and 'overlay'.
+# Name of the docker storage driver.
 docker_storage_driver: devicemapper
 
 # Name of the docker storage LVM volume group.
diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml
index 242eb0459..b860c741c 100644
--- a/ansible/roles/docker/tasks/main.yml
+++ b/ansible/roles/docker/tasks/main.yml
@@ -1,11 +1,4 @@
 ---
-- name: Fail when the storage driver is invalid
-  fail:
-    msg: >
-      Storage driver {{ docker_storage_driver }} is invalid. Valid drivers
-      include 'devicemapper' and 'overlay'.
-  when: docker_storage_driver not in ['devicemapper', 'overlay']
-
 - name: Set a fact about the virtualenv on the remote system
   set_fact:
     virtualenv: "{{ ansible_python_interpreter | dirname | dirname }}"
diff --git a/ansible/roles/docker/templates/daemon.json.j2 b/ansible/roles/docker/templates/daemon.json.j2
index c910cef86..f2d63d78b 100644
--- a/ansible/roles/docker/templates/daemon.json.j2
+++ b/ansible/roles/docker/templates/daemon.json.j2
@@ -6,7 +6,7 @@
 {%- endfor %}
   ],
 {%- endif %}
-  "storage-driver": "{% if docker_storage_driver == 'devicemapper' %}devicemapper{% else %}overlay{% endif %}",
+  "storage-driver": "{{ docker_storage_driver }}",
 {% if docker_daemon_mtu %}
   "mtu": {{ docker_daemon_mtu }},
 {% endif %}
diff --git a/etc/kayobe/docker.yml b/etc/kayobe/docker.yml
index 6ee82d530..e8c83f583 100644
--- a/etc/kayobe/docker.yml
+++ b/etc/kayobe/docker.yml
@@ -2,8 +2,7 @@
 ###############################################################################
 # Docker configuration.
 
-# Name of the docker storage driver. Supported values include 'devicemapper'
-# and 'overlay'.
+# Name of the docker storage driver. Default is 'devicemapper'.
 #docker_storage_driver:
 
 # Name of the docker storage LVM volume group.
diff --git a/releasenotes/notes/docker-storage-driver-7d560e7d350b14ba.yaml b/releasenotes/notes/docker-storage-driver-7d560e7d350b14ba.yaml
new file mode 100644
index 000000000..d5806caed
--- /dev/null
+++ b/releasenotes/notes/docker-storage-driver-7d560e7d350b14ba.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    Adds support for arbitrary Docker storage drivers, configured via
+    ``docker_storage_driver``. Previously only ``devicemapper`` and ``overlay``
+    were supported.