jinja2 - how to access pillar data with variables? -
i have pillar data set this;
vlan_tag_id: nginx: 1 apache: 2 mp: 3 redis: 4 in formula sls file this;
{% set tag = pillar.get('vlan_tag_id', 'u') %} so have variable tag dictionary {'apache': 2, 'nginx': 1, 'redis': 4, 'mp': 3}
at run time pass pillar data app value either
1. apache 2. nginx 3. redis 4. mp so if @ run time pass apache want me value 2
i cant {{ salt['pillar.get']('vlan_tag_id:app', '')}} because app variable.
i tried doing {{ salt'pillar.get'}}, throws error.
how can ?
since tag dictionary, can on well:
{%- set tag = pillar.get('vlan_tag_id', 'u') %} {%- set app = pillar.get('app') %} {{ tag.get(app) }} # note lack of quotes if want use colon syntax, can append contents of app key string:
{%- set app = pillar.get('app') %} {{ salt['pillar.get']('vlan_tab_id:' + app) }} i find simpler follow if alias pillar.get , break bit:
{%- set pget = salt['pillar.get'] %} {%- set app = pget('app') %} {%- set tag = pget('vlan_tag_id') %} {{ tag.get(app) }}
Comments
Post a Comment