From 049689c124a274870b5405ff6816beeba7d94a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20K=C3=BChne?= <73171182+magkue@users.noreply.github.com> Date: Mon, 9 Feb 2026 17:23:57 +0100 Subject: Add support for YAML strategy Introduces a new 'yaml' strategy using Ansible's `from_yaml` to read target files. This allows users to group multiple targets with distinct label sets (e.g., severity or job) within a single file, optimizing Prometheus file-based service discovery. - Refactored task structure into `strategy_*.yml` for consistency. - Extracted shared exporter variable computation. - Implemented label merging where exporter labels override defaults. - Included support for groups and hosts without labels to prevent crashes. PR: (#1) https://github.com/kliwniloc/ansible-role-prometheus-target/pull/1 --- tasks/process_exporter.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tasks/process_exporter.yml (limited to 'tasks/process_exporter.yml') diff --git a/tasks/process_exporter.yml b/tasks/process_exporter.yml new file mode 100644 index 0000000..2d13b29 --- /dev/null +++ b/tasks/process_exporter.yml @@ -0,0 +1,18 @@ +--- +- name: Set exporter variables + vars: + _defaults: '{{ prometheus_target_exporter_defaults[item.id] | default({}) if item.id is defined else {} }}' + ansible.builtin.set_fact: + _target_path: >- + {{ (item.path_prefix if item.path_prefix is defined else + (_defaults.path_prefix | default(prometheus_target_exporter_target_prefix))) + ~ + (item.path if item.path is defined else _defaults.path) | mandatory }} + _target_host: >- + {{ (item.host if item.host is defined else _defaults.host) | mandatory }} + _target_labels: >- + {{ (_defaults.labels | default({})) | combine(item.labels | default({})) }} + +- name: Execute strategy + ansible.builtin.include_tasks: + file: strategy_{{ prometheus_target_strategy }}.yml -- cgit v1.2.3