diff options
| author | Colin Wilk <colin.wilk@tum.de> | 2023-05-27 20:00:19 +0200 |
|---|---|---|
| committer | Colin Wilk <colin.wilk@tum.de> | 2023-05-27 20:00:19 +0200 |
| commit | 4dbd1e660fe815a2cc6032c54a2c1d1dbf62cd7b (patch) | |
| tree | 785801b9a47719c58069147960433d1854df4c65 /molecule | |
| parent | 0b2823d40892ffca4c0c64536c6a821cebaf3ff6 (diff) | |
| download | ansible-role-prometheus-target-4dbd1e660fe815a2cc6032c54a2c1d1dbf62cd7b.tar.gz ansible-role-prometheus-target-4dbd1e660fe815a2cc6032c54a2c1d1dbf62cd7b.zip | |
Add molecule with some simple test cases
Signed-off-by: Colin Wilk <colin.wilk@tum.de>
Diffstat (limited to 'molecule')
| -rw-r--r-- | molecule/.gitignore | 1 | ||||
| -rw-r--r-- | molecule/default/Dockerfile.j2 | 12 | ||||
| -rw-r--r-- | molecule/default/converge.yml | 43 | ||||
| -rw-r--r-- | molecule/default/molecule.yml | 39 | ||||
| -rw-r--r-- | molecule/default/tests/test_check_prometheus_targets.py | 16 |
5 files changed, 111 insertions, 0 deletions
diff --git a/molecule/.gitignore b/molecule/.gitignore new file mode 100644 index 0000000..bee8a64 --- /dev/null +++ b/molecule/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/molecule/default/Dockerfile.j2 b/molecule/default/Dockerfile.j2 new file mode 100644 index 0000000..42750e4 --- /dev/null +++ b/molecule/default/Dockerfile.j2 @@ -0,0 +1,12 @@ +FROM {{ item.image }} + +# Install dependencies. +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + sudo wget \ + python3-pip python3-dev python3-setuptools python3-wheel python3-apt \ + && rm -rf /var/lib/apt/lists/* \ + && rm -Rf /usr/share/doc && rm -Rf /usr/share/man \ + && apt-get clean + +ENTRYPOINT ["bash", "-c", "sleep infinity"] diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml new file mode 100644 index 0000000..f9bd174 --- /dev/null +++ b/molecule/default/converge.yml @@ -0,0 +1,43 @@ +--- +- name: Converge + hosts: application + pre_tasks: + - name: Create targets + ansible.builtin.file: + path: '{{ item }}' + state: touch + modification_time: preserve + access_time: preserve + mode: '0644' + become: true + delegate_to: '{{ prometheus_target_host }}' + loop: + - /opt/target1.yml + - /opt/target2.yml + - /opt/target3.yml + + vars: + prometheus_target_handler_command_enabled: true + prometheus_target_handler_command: + cmd: echo test + prometheus_target_handler_shell_enabled: true + prometheus_target_handler_shell: + cmd: echo test + prometheus_target_exporter_defaults: + node_exporter: + path: /opt/target1.yml + host: '{{ inventory_hostname }}' + blackbox_exporter: + path: /opt/target2.yml + host: '{{ inventory_hostname }}_AA' + + roles: + - role: kliwniloc.prometheus_target + prometheus_target_exporter: + - id: node_exporter + - { id: blackbox_exporter, host: test1 } + - { id: blackbox_exporter, host: test2 } + - role: kliwniloc.prometheus_target + prometheus_target_exporter: + - id: blackbox_exporter + path: /opt/target3.yml diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..a8623d0 --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,39 @@ +--- +dependency: + name: galaxy + + +driver: + name: docker + + +platforms: + + - name: application + image: ${MOLECULE_DISTRO:-debian:10} + dockerfile: Dockerfile.j2 + pre_build_image: false + docker_networks: + - name: molecule-container-net + driver_options: + # Setting the mtu size due to issues with docker and VPN + com.docker.network.driver.mtu: 1420 + networks: + - name: molecule-container-net + + - name: prometheus + image: ${MOLECULE_DISTRO:-debian:10} + dockerfile: Dockerfile.j2 + pre_build_image: false + networks: + - name: molecule-container-net + + +provisioner: + name: ansible + playbooks: + converge: ${MOLECULE_PLAYBOOK:-converge.yml} + + +verifier: + name: testinfra diff --git a/molecule/default/tests/test_check_prometheus_targets.py b/molecule/default/tests/test_check_prometheus_targets.py new file mode 100644 index 0000000..8a0f413 --- /dev/null +++ b/molecule/default/tests/test_check_prometheus_targets.py @@ -0,0 +1,16 @@ +testinfra_hosts = ['prometheus'] + + +def test_check_hosts_added(host): + t1 = host.file('/opt/target1.yml') + t2 = host.file('/opt/target2.yml') + t3 = host.file('/opt/target3.yml') + + assert t1.exists + assert t2.exists + assert t3.exists + + assert ' - application' in t1.content_string + assert ' - test1' in t2.content_string + assert ' - test2' in t2.content_string + assert ' - application_AA' in t3.content_string |