AETHER-2698 Docker role updates

- Add an ability to configure daemon option
- Add an option to install docker-compose
- Separate task for updating apt repository, and make it conditional

Change-Id: Iafff1635f9af07a9712124f82c2f3b27fb6e557c
diff --git a/tasks/Debian-repo.yml b/tasks/Debian-repo.yml
new file mode 100644
index 0000000..adf5c74
--- /dev/null
+++ b/tasks/Debian-repo.yml
@@ -0,0 +1,29 @@
+---
+# docker tasks/Debian-repo.yml
+#
+# SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Install apt related prereqs
+  apt:
+    name:
+      - "apt-transport-https"
+      - "ca-certificates"
+      - "gpg"
+      - "software-properties-common"
+    state: "present"
+    update_cache: true
+
+- name: Add Docker apt repo key
+  apt_key:
+    data: "{{ lookup('file','docker.gpg') }}"
+    state: "present"
+
+# https://docs.docker.com/engine/install/debian/#install-using-the-repository
+- name: Add Official Docker apt repo
+  apt_repository:
+    repo: >-
+      deb https://download.docker.com/linux/{{ ansible_lsb['id'] | lower }}
+      {{ ansible_lsb['codename'] }} stable
+    mode: 0644
+    update_cache: true
diff --git a/tasks/Debian.yml b/tasks/Debian.yml
index 8633b01..f64c0f4 100644
--- a/tasks/Debian.yml
+++ b/tasks/Debian.yml
@@ -4,30 +4,6 @@
 # SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
 # SPDX-License-Identifier: Apache-2.0
 
-- name: Install apt related prereqs
-  apt:
-    name:
-      - "apt-transport-https"
-      - "ca-certificates"
-      - "gpg"
-      - "software-properties-common"
-    state: "present"
-    update_cache: true
-
-- name: Add Docker apt repo key
-  apt_key:
-    data: "{{ lookup('file','docker.gpg') }}"
-    state: "present"
-
-# https://docs.docker.com/engine/install/debian/#install-using-the-repository
-- name: Add Official Docker apt repo
-  apt_repository:
-    repo: >-
-      deb https://download.docker.com/linux/{{ ansible_lsb['id'] | lower }}
-      {{ ansible_lsb['codename'] }} stable
-    mode: 0644
-    update_cache: true
-
 - name: Install Docker daemon apt package
   apt:
     name: "{{ docker_package }}={{ docker_apt_epoch }}:{{ docker_version }}*"
diff --git a/tasks/main.yml b/tasks/main.yml
index 5364bd1..476af22 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -7,5 +7,32 @@
 - name: include OS-specific vars
   include_vars: "{{ ansible_os_family }}.yml"
 
+- name: include OS-specific package repo updates
+  include_tasks: "{{ ansible_os_family }}-repo.yml"
+  when: docker_add_package_repo | bool
+
 - name: include OS-specific tasks
   include_tasks: "{{ ansible_os_family }}.yml"
+
+- name: ensure /etc/docker/ directory exists
+  file:
+    path: /etc/docker
+    state: directory
+    mode: 0755
+  when: docker_daemon_options.keys() | length > 0
+
+- name: configure Docker daemon options
+  copy:
+    content: "{{ docker_daemon_options | to_nice_json }}"
+    dest: /etc/docker/daemon.json
+    mode: 0644
+  when: docker_daemon_options.keys() | length > 0
+  notify: restart docker
+
+- name: install docker compose (if configured).
+  get_url:
+    url: "{{ docker_compose_url }}"
+    checksum: "{{ docker_compose_checksum }}"
+    dest: "{{ docker_compose_path }}"
+    mode: 0755
+  when: docker_install_compose | bool