fix(map): workaround salt bug with Jinja2 3.0 #239
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR progress checklist (to be filled in by reviewers)
What type of PR is this?
Primary type
[build]
Changes related to the build system[chore]
Changes to the build process or auxiliary tools and libraries such as documentation generation[ci]
Changes to the continuous integration configuration[feat]
A new feature[fix]
A bug fix[perf]
A code change that improves performance[refactor]
A code change that neither fixes a bug nor adds a feature[revert]
A change used to revert a previous commit[style]
Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)Secondary type
[docs]
Documentation changes[test]
Adding missing or correcting existing testsDoes this PR introduce a
BREAKING CHANGE
?No.
Related issues and/or pull requests
saltstack/salt#60188
Describe the changes you're proposing
A change in Jinja2 3.0 cause troubles in rendering templates where salt special variables are available only on first import but not subsequent ones (see saltstack/salt#60188)
We could workaround that bug by explicitly import jinja libraries and load YAML files
with context
.TEMPLATE/map.jinja: import
libmapstack.jinja
andpost-map.jinja
with context.TEMPLATE/libmapstack.jinja: import
libmatchers.jinja
with context.Load YAML files with context.
TEMPLATE/libmatchers.jinja: import
libsaltcli.jinja
with context.Pillar / config required to test the proposed changes
I tested by running the following commands:
create the openSUSE Tumbleweed container:
./bin/kitchen create default-opensuse-tmbl-latest-master-py3
install the 3.x Jinja2 library
./bin/kitchen exec -c 'sudo zypper install --no-confirm python3-jinja2' default-opensuse-tmbl-latest-master-py3
test the formula
./bin/kitchen verify default-opensuse-tmbl-latest-master-py3
Debug log showing how the proposed changes work
Documentation checklist
README
(e.g.Available states
).pillar.example
.Testing checklist
state_top
).Additional context
This is incompatible with cert-formula and PR #230.