Ansible - Джинджа препятствует тому, чтобы Джинджа удалял символы новой строки в макросе - PullRequest
0 голосов
/ 30 октября 2018

Предполагается, что у меня есть шаблон jinja2 с использованием следующего p

{% macro logging(ltype) %}
{% if ltype == 'fluentd' %}
logging:
  driver: 'fluentd'
  options:
    tag: "{{ app_name }}.{{ '{{' }}.Name{{ '}}' }}"
    labels: "mylabel"
{% endif %}
{% endmacro %}
...                                                                                                                   
   {{ logging('fluentd') }}                                                                                           
... 

Когда я рендеринг этого шаблона (template модуль), я получаю

...
   logging:
  driver: 'fluentd'
  options:
    tag: "test.{{.Name}}"
    labels: "mylabel"

...

Как видите, клавиша driver смещена по неизвестным мне причинам. Я перепробовал все возможности управления пробелами, это ничего не меняет.

У кого-нибудь есть идея, чтобы это исправить?

Желаемый результат:

...
   logging:
     driver: 'fluentd'
     options:
       tag: "test.{{.Name}}"
       labels: "mylabel"   
...

1 Ответ

0 голосов
/ 30 октября 2018

Измените эту часть шаблона на:

...

{{ logging('fluentd') | indent(3,true) }}

...
...