When writing template files using Jinja2 for Saltstack, I often define some variables at the beginning of the file. For example:
{% set ip = grains['ip4_interfaces']['eth1'][0] %}
{% set domain = pillar['company_domain'] %}
{% set version = pillar['site_version'] %}
{% set site_url = 'www.' + domain %}
[...]
Everything works fine but when opening the generated file, I get a block of empty lines where the jinja code was.
Am I doing something wrong ? If not, is there any way to get rid of those empty lines when using templates ?
There is whitespace control in Jinja2. You might want:
{%- set ip = grains['ip4_interfaces']['eth1'][0] -%}
{%- set domain = pillar['company_domain'] -%}
{%- set version = pillar['site_version'] -%}
{%- set site_url = 'www.' + domain -%}
[...]
As well, the salt configuration file supports jinja_trim_blocks
and jinja_lstrip_blocks
(jinja_env:trim_blocks
, jinja_env:lstrip_blocks
, jinja_sls_env:trim_blocks
, and jinja_sls_env:lstrip_blocks
as of 2018.3).