# Copyright 2020-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---

- name: Install dependencies for Docker
  apt:
    name:
      - apt-transport-https
      - ca-certificates
      - curl
      - software-properties-common
    state: present
  tags: docker

- name: Add Docker GPG key
  shell: |
    curl -sSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  args:
    warn: false
  tags: docker

- name: Add Docker repository
  shell: |
    add-apt-repository \
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) \
     stable"
  args:
    warn: false
  tags: docker

- name: Install Docker CE
  apt:
    name: docker-ce={{ docker_version }}
    state: present
    update_cache: yes
  tags: docker

- name: Add current user to "docker" group
  user:
    name: "{{ ansible_user }}"
    groups: docker
    append: true
  tags: docker

- name: Configure Docker daemon options
  copy:
    dest: /etc/docker/daemon.json
    content: "{{ docker_daemon_options | to_json }}"
  register: docker_register_options
  notify: restart docker
  tags: docker

- name: Reload systemd daemon
  systemd:
    daemon_reload: true
  when: docker_register_options is changed
  tags: docker
