From e56bd4f45f5d9f68aeb406510cf4aa5741405d80 Mon Sep 17 00:00:00 2001 From: Jan Benedikt Date: Tue, 5 May 2020 08:46:19 +0200 Subject: Fix lint errors in package-repository-check role In package-repository-check was changed command module to service module due to lint failing. Failing was caused by errors: [301] Commands should not change things if nothing needs doing [303] service used in place of service module Added molecule test. Issue-ID: OOM-2395 Signed-off-by: Jan Benedikt Change-Id: I6cfdfe920eabfb9a0c43cc9ba4ffcd81df1d6852 --- .../molecule/ubuntu/Dockerfile.j2 | 14 ++++++ .../molecule/ubuntu/molecule.yml | 54 ++++++++++++++++++++++ .../molecule/ubuntu/tests/test_default.py | 17 +++++++ 3 files changed, 85 insertions(+) create mode 100755 ansible/roles/package-repository-check/molecule/ubuntu/Dockerfile.j2 create mode 100755 ansible/roles/package-repository-check/molecule/ubuntu/molecule.yml create mode 100755 ansible/roles/package-repository-check/molecule/ubuntu/tests/test_default.py (limited to 'ansible/roles/package-repository-check/molecule/ubuntu') diff --git a/ansible/roles/package-repository-check/molecule/ubuntu/Dockerfile.j2 b/ansible/roles/package-repository-check/molecule/ubuntu/Dockerfile.j2 new file mode 100755 index 00000000..5e856c0a --- /dev/null +++ b/ansible/roles/package-repository-check/molecule/ubuntu/Dockerfile.j2 @@ -0,0 +1,14 @@ +# Molecule managed + +{% if item.registry is defined %} +FROM {{ item.registry.url }}/{{ item.image }} +{% else %} +FROM {{ item.image }} +{% endif %} + +RUN apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean + +# /etc/resolv.conf cannot be edited in docker container +# due to cannot be installed resolvconf +# https://github.com/moby/moby/issues/1297 +RUN echo "resolvconf resolvconf/linkify-resolvconf boolean false" | debconf-set-selections diff --git a/ansible/roles/package-repository-check/molecule/ubuntu/molecule.yml b/ansible/roles/package-repository-check/molecule/ubuntu/molecule.yml new file mode 100755 index 00000000..ba08e86b --- /dev/null +++ b/ansible/roles/package-repository-check/molecule/ubuntu/molecule.yml @@ -0,0 +1,54 @@ +--- +dependency: + name: galaxy +driver: + name: docker +lint: + name: yamllint +platforms: + - name: infrastructure-server + image: ${PLATFORM_DISTRO:-ubuntu}:${DISTRO_VERSION:-18.04} + groups: + - infrastructure + + - name: kubernetes-node-1 + image: ${PLATFORM_DISTRO:-ubuntu}:${DISTRO_VERSION:-18.04} + groups: + - kubernetes + +provisioner: + name: ansible + lint: + name: ansible-lint + playbooks: + converge: ../default/playbook.yml + inventory: + host_vars: + infrastructure-server: + cluster_ip: 6.5.4.3 +scenario: + name: ubuntu + test_sequence: + - lint + - cleanup + - destroy + - dependency + - syntax + - create + - prepare + - converge + # - idempotence + # --> Action: 'idempotence' + # ERROR: Idempotence test failed because of the following tasks: + # * [infra_host] => package-repository-check : Clean yum cache + # * [node0] => package-repository-check : Clean yum cache + - side_effect + - verify + - cleanup + - destroy +verifier: + name: testinfra + lint: + name: flake8 + options: + v: 1 diff --git a/ansible/roles/package-repository-check/molecule/ubuntu/tests/test_default.py b/ansible/roles/package-repository-check/molecule/ubuntu/tests/test_default.py new file mode 100755 index 00000000..3e7f3864 --- /dev/null +++ b/ansible/roles/package-repository-check/molecule/ubuntu/tests/test_default.py @@ -0,0 +1,17 @@ +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('distro,pkg', [ + ('ubuntu', 'resolvconf') +]) +def test_pkg(host, distro, pkg): + os = host.system_info.distribution + if distro == os: + package = host.package(pkg) + assert package.is_installed -- cgit 1.2.3-korg