запретить to_nice_yaml генерировать псевдонимы - PullRequest
0 голосов
/ 10 января 2019

Можно ли заставить функцию to_nice_yaml избежать генерации псевдонимов?

Следующая строка в шаблоне Ansible

scrape_configs:
    {{ scrape_configs | to_nice_yaml(indent=2) | indent(2,False) }}

, где

common_relabeling:
  - stuff1
  - stuff2

scrape_configs:
  - job_name: process_exporter
    relabel_configs: "{{ common_relabeling }}"
  - job_name: node_exporter
    relabel_configs: "{{ common_relabeling }}"

расширяется в файле YAML с использованием псевдонимов (см. Ниже), что, я не уверен, поддерживается анализатором конфигурации Prometheus. Очевидно, я бы хотел исправить это без жесткого кодирования common_relabeling в каждой записи

scrape_configs:
  - job_name: process_exporter
    relabel_configs: &id001
    - stuff1
    - stuff2
  - job_name: node_exporter
    relabel_configs: *id001

1 Ответ

0 голосов
/ 10 января 2019

Вы можете просто оставить привязку и псевдоним как есть.

Prometheus использует пакет gopkg.in/yaml.v2, и если вы прочитаете документацию этого пакета, вы увидите, что он основан на libyaml, который анализирует якоря и псевдонимы более десятилетие сейчас. И документация для gopkg.in/yaml.v2 прямо заявляет, что якоря поддерживаются :

Пакет yaml поддерживает большинство YAML 1.1 и 1.2, включая поддержку якорей, тегов ...

...