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 ?
You do it by using a minus sing - to strip whitespaces from blocks, comments or variable expressions. You need to add it to the start or end of given expression to remove whitespaces before or after the block, respectively.
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With