summaryrefslogtreecommitdiffstats
path: root/ansible/roles
diff options
context:
space:
mode:
authorSamuli Silvius <s.silvius@partner.samsung.com>2019-03-25 18:46:24 +0200
committerSamuli Silvius <s.silvius@partner.samsung.com>2019-04-16 11:33:43 +0000
commitbf6776cc01865b8ba392fdbec18e28bf2a362b05 (patch)
tree0a68ae8b859984f1fd8d21c58f456e53d7e7d8b1 /ansible/roles
parente3c829675916391011e86ee78a404570b99bc51a (diff)
Molecule tests for docker role
Issue-ID: OOM-1759 Change-Id: I9e1ee7f248147b3f7229625c7a20fa84e8e67aac Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
Diffstat (limited to 'ansible/roles')
-rw-r--r--ansible/roles/docker/.yamllint11
-rw-r--r--ansible/roles/docker/molecule/default/molecule.yml38
-rw-r--r--ansible/roles/docker/molecule/default/playbook.yml5
-rw-r--r--ansible/roles/docker/molecule/default/prepare.yml5
-rw-r--r--ansible/roles/docker/molecule/default/tests/test_default.py35
-rw-r--r--ansible/roles/docker/tasks/main.yml4
6 files changed, 96 insertions, 2 deletions
diff --git a/ansible/roles/docker/.yamllint b/ansible/roles/docker/.yamllint
new file mode 100644
index 00000000..e8e79a57
--- /dev/null
+++ b/ansible/roles/docker/.yamllint
@@ -0,0 +1,11 @@
+extends: default
+
+rules:
+ braces:
+ max-spaces-inside: 1
+ level: error
+ brackets:
+ max-spaces-inside: 1
+ level: error
+ line-length: disable
+# truthy: disable
diff --git a/ansible/roles/docker/molecule/default/molecule.yml b/ansible/roles/docker/molecule/default/molecule.yml
new file mode 100644
index 00000000..9a87184f
--- /dev/null
+++ b/ansible/roles/docker/molecule/default/molecule.yml
@@ -0,0 +1,38 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ command: ${MOLECULE_DOCKER_COMMAND:-""}
+ groups:
+ - infrastructure
+ env:
+ container: docker
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+provisioner:
+ name: ansible
+ lint:
+ name: ansible-lint
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../test/roles
+ ANSIBLE_LIBRARY: ../../../../library
+ inventory:
+ host_vars:
+ infrastructure-server:
+ cluster_ip: 1.2.3.4
+verifier:
+ name: testinfra
+ options:
+ verbose: true
+ lint:
+ name: flake8
+ options:
+ ignore: W291 # trailing whitespace
diff --git a/ansible/roles/docker/molecule/default/playbook.yml b/ansible/roles/docker/molecule/default/playbook.yml
new file mode 100644
index 00000000..7384ae27
--- /dev/null
+++ b/ansible/roles/docker/molecule/default/playbook.yml
@@ -0,0 +1,5 @@
+---
+- name: Converge
+ hosts: all
+ roles:
+ - role: docker
diff --git a/ansible/roles/docker/molecule/default/prepare.yml b/ansible/roles/docker/molecule/default/prepare.yml
new file mode 100644
index 00000000..8df759c9
--- /dev/null
+++ b/ansible/roles/docker/molecule/default/prepare.yml
@@ -0,0 +1,5 @@
+---
+- name: Prepare infra
+ hosts: all
+ roles:
+ - prepare-docker
diff --git a/ansible/roles/docker/molecule/default/tests/test_default.py b/ansible/roles/docker/molecule/default/tests/test_default.py
new file mode 100644
index 00000000..a8adeb65
--- /dev/null
+++ b/ansible/roles/docker/molecule/default/tests/test_default.py
@@ -0,0 +1,35 @@
+import os
+import pytest
+
+import testinfra.utils.ansible_runner
+
+testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
+ os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
+
+
+@pytest.mark.parametrize('svc', [
+ 'docker'
+])
+def test_service(host, svc):
+ service = host.service(svc)
+
+ assert service.is_running
+ assert service.is_enabled
+
+
+def test_docker_daemon_file(host):
+ f = host.file('/etc/docker/daemon.json')
+
+ assert f.exists
+ assert f.user == 'root'
+ assert f.group == 'root'
+ assert f.content_string == """{
+ "log-opts": {
+ "max-size": "100m",
+ "max-file": "3"
+ },
+ "dns": [
+ "1.2.3.4"
+ ],
+ "log-driver": "json-file"
+}"""
diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml
index de740df2..1925d09b 100644
--- a/ansible/roles/docker/tasks/main.yml
+++ b/ansible/roles/docker/tasks/main.yml
@@ -24,7 +24,7 @@
- name: Setup docker container logging settings
json_mod:
path: /etc/docker/daemon.json
- key: '' # the whole JSON document per https://tools.ietf.org/html/rfc6901
+ key: '' # the whole JSON document per https://tools.ietf.org/html/rfc6901
# "value" must be wrapped in single quote "'" with extra space in front of "{" (ansible workaround)
# reference: https://stackoverflow.com/questions/31969872
value: ' { "log-driver": "json-file", "log-opts": { "max-size": "{{ docker.log_max_size }}", "max-file": "{{ docker.log_max_file }}" } }'
@@ -46,4 +46,4 @@
systemd:
name: docker
state: started
- enabled: yes
+ enabled: true