aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--meta/argument_specs.yml2
-rw-r--r--molecule/default/converge.yml2
-rw-r--r--molecule/default/tests/test_check_prometheus_targets.py5
-rw-r--r--tasks/lineinfile.yml14
5 files changed, 19 insertions, 6 deletions
diff --git a/README.md b/README.md
index f3d285c..0cfe278 100644
--- a/README.md
+++ b/README.md
@@ -254,6 +254,8 @@ Multiple exporters
- role: kliwniloc.prometheus_target # deploy targets
prometheus_target_exporter:
- id: node_exporter # deploy node_exporter with default host
+ # deploy an exporter that is not specified in prometheus_target_exporter_defaults
+ - { host: exporter_without_id, path: /opt/simple_target4.yml }
# deploy blackbox_exporter with multiple hosts
- { id: blackbox_exporter, host: node1.example.org }
- { id: blackbox_exporter, host: node2.example.org }
diff --git a/meta/argument_specs.yml b/meta/argument_specs.yml
index 270bf68..502c640 100644
--- a/meta/argument_specs.yml
+++ b/meta/argument_specs.yml
@@ -71,7 +71,7 @@ argument_specs:
options:
id:
type: str
- required: true
+ required: false
path:
type: str
required: false
diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml
index e96fb81..9346988 100644
--- a/molecule/default/converge.yml
+++ b/molecule/default/converge.yml
@@ -17,6 +17,7 @@
- /opt/simple_target1.yml
- /opt/simple_target2.yml
- /opt/simple_target3.yml
+ - /opt/simple_target4.yml
vars:
prometheus_target_host: prometheus
@@ -34,6 +35,7 @@
- id: node_exporter
- { id: blackbox_exporter, host: test1 }
- { id: blackbox_exporter, host: test2 }
+ - { host: exporter_without_id, path: /opt/simple_target4.yml }
- role: kliwniloc.prometheus_target
prometheus_target_exporter:
- id: blackbox_exporter
diff --git a/molecule/default/tests/test_check_prometheus_targets.py b/molecule/default/tests/test_check_prometheus_targets.py
index 9ce1056..ddf3a22 100644
--- a/molecule/default/tests/test_check_prometheus_targets.py
+++ b/molecule/default/tests/test_check_prometheus_targets.py
@@ -7,10 +7,12 @@ def test_check_hosts_added_simple(host):
t1 = host.file('/opt/simple_target1.yml')
t2 = host.file('/opt/simple_target2.yml')
t3 = host.file('/opt/simple_target3.yml')
+ t4 = host.file('/opt/simple_target4.yml')
assert t1.exists
assert t2.exists
assert t3.exists
+ assert t4.exists
assert t1.content_string == \
' - application\n'
@@ -23,6 +25,9 @@ def test_check_hosts_added_simple(host):
assert t3.content_string == \
' - application_AA\n'
+ assert t4.content_string == \
+ ' - exporter_without_id\n'
+
"""
Test prefix functionality
"""
diff --git a/tasks/lineinfile.yml b/tasks/lineinfile.yml
index d7f0793..0367be9 100644
--- a/tasks/lineinfile.yml
+++ b/tasks/lineinfile.yml
@@ -1,12 +1,16 @@
---
- name: Make sure targets are deployed
ansible.builtin.lineinfile:
- path: '{{ (item.path_prefix
- | default(prometheus_target_exporter_defaults[item.id].path_prefix)
- | default(prometheus_target_exporter_target_prefix)) ~
- item.path | default(prometheus_target_exporter_defaults[item.id].path) }}'
+ path: '{{ (
+ item.path_prefix if item.path_prefix is defined else
+ (prometheus_target_exporter_defaults[item.id].path_prefix
+ | default(prometheus_target_exporter_target_prefix))
+ if item.id is defined)
+ ~
+ (item.path if item.path is defined
+ else prometheus_target_exporter_defaults[item.id].path if item.id is defined) | mandatory }}'
line: '{{ prometheus_target_strategy_lineinfile_prefix ~
- (item.host | default(prometheus_target_exporter_defaults[item.id].host)) ~
+ (item.host if item.host is defined else prometheus_target_exporter_defaults[item.id].host) | mandatory ~
prometheus_target_strategy_lineinfile_suffix }}'
state: present
become: true