KP
Size: a a a
KP
KP
KG
R
{% if 'somename' in pillar -%} ... {% endif %} в или может какие-то другие варианты?KP
pillar.get(pillar, {})R
pillar.get(pillar, {}) понятно, я так же делаю, но обычно имеются вложенные ключи и если дальше идет работа с этими ключами, то надо везде так же использовать .get() притом особого смысла в полученных данных не будет, это будет набор пустых словарей.init.sls не очень красииво, но можно вывести ясное сообщение с ошибкой. На подобии такого:{% if 'postgresql' in pillar -%}
include:
- .server
- .cluster
- .manage
{% else -%}
{{ sls }}_postgresql_pillar_not_defined:
test.fail_without_changes:
- name: "'postgresql' pillar is not defined."
{% endif -%}GG
KP
pillar.get(pillar, {}) понятно, я так же делаю, но обычно имеются вложенные ключи и если дальше идет работа с этими ключами, то надо везде так же использовать .get() притом особого смысла в полученных данных не будет, это будет набор пустых словарей.init.sls не очень красииво, но можно вывести ясное сообщение с ошибкой. На подобии такого:{% if 'postgresql' in pillar -%}
include:
- .server
- .cluster
- .manage
{% else -%}
{{ sls }}_postgresql_pillar_not_defined:
test.fail_without_changes:
- name: "'postgresql' pillar is not defined."
{% endif -%}{% if bootstraped_nodes|length in [1, 2] %}
{{ raise('Galera bootstraped_nodes grain is not 0 or 3') }}
{% endif %}KG
KG
KG
templates:
template-name-01:
url: http://download.com/template-01.txt
hash: 0123456789
template-name-02:
url: http://download.com/template-02.txt
hash: 9876543210KG
{% for item in templates.items() %}
name: {{ item[0] }}
url: {{ item[1].url }}
hash: {{ item[1].hash }}
{% endfor %}R
KG
KG
KG
{% for item in templates %}
name: {{ item }}
url: {{ templates[item].url }}
hash: {{ templates[item].hash }}
{% endfor %}KG
{% for item in templates %}
name: {{ item }}
url: {{ templates[item].url }}
hash: {{ templates[item].hash }}
{% endfor %}KG