From bf6776cc01865b8ba392fdbec18e28bf2a362b05 Mon Sep 17 00:00:00 2001 From: Samuli Silvius Date: Mon, 25 Mar 2019 18:46:24 +0200 Subject: Molecule tests for docker role Issue-ID: OOM-1759 Change-Id: I9e1ee7f248147b3f7229625c7a20fa84e8e67aac Signed-off-by: Samuli Silvius --- .../tasks/docker-socket-override.yml | 13 ++++++++ .../roles/prepare-docker/tasks/enable-repos.yml | 13 ++++++++ ansible/test/roles/prepare-docker/tasks/main.yml | 21 ++++++++++++ .../prepare-docker/tasks/prepare-docker-repos.yml | 15 +++++++++ .../roles/prepare-docker/tasks/python-bindings.yml | 3 ++ .../roles/prepare-docker/tasks/python2-docker.yml | 38 ++++++++++++++++++++++ ansible/test/roles/prepare-docker/vars/main.yml | 7 ++++ 7 files changed, 110 insertions(+) create mode 100644 ansible/test/roles/prepare-docker/tasks/docker-socket-override.yml create mode 100644 ansible/test/roles/prepare-docker/tasks/enable-repos.yml create mode 100644 ansible/test/roles/prepare-docker/tasks/main.yml create mode 100644 ansible/test/roles/prepare-docker/tasks/prepare-docker-repos.yml create mode 100644 ansible/test/roles/prepare-docker/tasks/python-bindings.yml create mode 100644 ansible/test/roles/prepare-docker/tasks/python2-docker.yml create mode 100644 ansible/test/roles/prepare-docker/vars/main.yml (limited to 'ansible/test/roles') diff --git a/ansible/test/roles/prepare-docker/tasks/docker-socket-override.yml b/ansible/test/roles/prepare-docker/tasks/docker-socket-override.yml new file mode 100644 index 00000000..0cabadf4 --- /dev/null +++ b/ansible/test/roles/prepare-docker/tasks/docker-socket-override.yml @@ -0,0 +1,13 @@ +--- +- name: Create docker.socket systemd dir for override + file: + path: /etc/systemd/system/docker.socket.d + state: directory + +- name: Fake dockerd dependent docker.socket service not to actually listen the docker socket as dockerd is not used in container only docker client + copy: + content: | + [Socket] + ListenStream= + ListenStream=/tmp/fake + dest: /etc/systemd/system/docker.socket.d/override.conf diff --git a/ansible/test/roles/prepare-docker/tasks/enable-repos.yml b/ansible/test/roles/prepare-docker/tasks/enable-repos.yml new file mode 100644 index 00000000..204bf03d --- /dev/null +++ b/ansible/test/roles/prepare-docker/tasks/enable-repos.yml @@ -0,0 +1,13 @@ +--- +- name: Enable docker repos back for Molecule testing purposes + copy: + remote_src: yes + src: "{{ item }}" + dest: "{{ (item | splitext)[0] }}" + loop: "{{ docker_needed_repos }}" + +- name: Disable offline repo for molecule testing purposes + lineinfile: + path: "{{ offline_repo_file }}" + regexp: 'enabled = 1' + line: 'enabled = 0' diff --git a/ansible/test/roles/prepare-docker/tasks/main.yml b/ansible/test/roles/prepare-docker/tasks/main.yml new file mode 100644 index 00000000..e7d87061 --- /dev/null +++ b/ansible/test/roles/prepare-docker/tasks/main.yml @@ -0,0 +1,21 @@ +--- +- name: Check repositories + stat: + path: "{{ item }}" + loop: "{{ docker_needed_repos + [offline_repo_file] }}" + register: repos + +- name: Set fact for offline repos created + set_fact: + offline_repo_created: "{{ (repos.results | map(attribute='stat.exists') | list) is all }}" + +- debug: + var: offline_repo_created + +- name: Enable repos back (if package-repository role already setup offline onap repo) for molecule testing purposes to install docker + include_tasks: enable-repos.yml + when: offline_repo_created + +- name: Prepare docker repos normally + include_tasks: prepare-docker-repos.yml + when: not offline_repo_created diff --git a/ansible/test/roles/prepare-docker/tasks/prepare-docker-repos.yml b/ansible/test/roles/prepare-docker/tasks/prepare-docker-repos.yml new file mode 100644 index 00000000..26f89d64 --- /dev/null +++ b/ansible/test/roles/prepare-docker/tasks/prepare-docker-repos.yml @@ -0,0 +1,15 @@ +--- +- name: Install Docker-CE repo + yum_repository: + name: docker-ce + description: Docker-ce YUM repo + baseurl: https://download.docker.com/linux/centos/7/x86_64/stable/ + gpgcheck: true + gpgkey: https://download.docker.com/linux/centos/gpg + +- name: Install docker python bindings + import_tasks: python-bindings.yml + +- name: Fake dockerd on container + import_tasks: docker-socket-override.yml + when: ansible_env.container == 'docker' diff --git a/ansible/test/roles/prepare-docker/tasks/python-bindings.yml b/ansible/test/roles/prepare-docker/tasks/python-bindings.yml new file mode 100644 index 00000000..7a66a328 --- /dev/null +++ b/ansible/test/roles/prepare-docker/tasks/python-bindings.yml @@ -0,0 +1,3 @@ +--- +- name: Handle python2-docker dependency needed by Ansible's docker_* modules + import_tasks: python2-docker.yml diff --git a/ansible/test/roles/prepare-docker/tasks/python2-docker.yml b/ansible/test/roles/prepare-docker/tasks/python2-docker.yml new file mode 100644 index 00000000..9cb3b483 --- /dev/null +++ b/ansible/test/roles/prepare-docker/tasks/python2-docker.yml @@ -0,0 +1,38 @@ +--- +- name: Remove docker-python that is conflicting with python2-docker + package: + name: docker-python + state: absent + +- name: Create own-repo dir + file: + path: /root/own-repo + state: directory + +- name: Download python2-docker rpm for Ansible (docker_container module dep) + get_url: + url: https://cbs.centos.org/kojifiles/packages/python-docker/2.5.1/2.el7/noarch/python2-docker-2.5.1-2.el7.noarch.rpm + dest: /root/own-repo/ + register: rpm + +- name: Install createrepo + package: + name: createrepo + state: present + +- name: Run createrepo + command: createrepo /root/own-repo/ + when: rpm.changed + +- name: Create own-repo + yum_repository: + name: own-repo + description: Own repo for ansible deps + baseurl: file:///root/own-repo + enabled: true + gpgcheck: false + +- name: Install docker python module + package: + name: python2-docker + state: present diff --git a/ansible/test/roles/prepare-docker/vars/main.yml b/ansible/test/roles/prepare-docker/vars/main.yml new file mode 100644 index 00000000..c63c0dea --- /dev/null +++ b/ansible/test/roles/prepare-docker/vars/main.yml @@ -0,0 +1,7 @@ +--- +docker_needed_repos: + - /etc/yum.repos.d/CentOS-Base.repo.disabled + - /etc/yum.repos.d/docker-ce.repo.disabled + - /etc/yum.repos.d/own-repo.repo.disabled + +offline_repo_file: /etc/yum.repos.d/onap.repo \ No newline at end of file -- cgit 1.2.3-korg