Module to work with salt formula defaults files
Allows deep copy of objects in formulas.
By default, Python does not copy objects, it creates bindings between a target and an object.
It is more typical to use this in a templating language in formulas, instead of directly on the command-line.
defaults.get is used much like pillar.get except that it will read a default value for a pillar from defaults.json or defaults.yaml files that are stored in the root of a salt formula.
CLI Example:
salt '*' defaults.get core:users:root
The defaults is computed from pillar key. The first entry is considered as the formula namespace.
For example, querying core:users:root
will try to load salt://core/defaults.yaml
and salt://core/defaults.json
.
Allows deep merging of dicts in formulas.
If True, it will merge into dest dict, if not it will make a new copy from that dict and return it.
CLI Example: .. code-block:: bash
salt '*' default.merge a=b d=e
It is more typical to use this in a templating language in formulas, instead of directly on the command-line.
Allows to set defaults for group of data set e.g. group for nodes.
This function is a combination of defaults.merge and defaults.deepcopy to avoid redundant in jinja.
Example:
group01: defaults: enabled: True extra: - test - stage nodes: host01: index: foo upstream: bar host02: index: foo2 upstream: bar2{% do salt['defaults.update'](group01.nodes, group01.defaults) %}Each node will look like the following:
host01: enabled: True index: foo upstream: bar extra: - test - stage
It is more typical to use this in a templating language in formulas, instead of directly on the command-line.
© 2019 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.defaults.html