salt.modules.defaults
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.
salt.modules.defaults.deepcopy(source)
-
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 loadsalt://core/defaults.yaml
andsalt://core/defaults.json
.
salt.modules.defaults.get(key, default='')
-
Allows deep merging of dicts in formulas.
- merge_listsFalse
-
If True, it will also merge lists instead of replace their items.
- in_placeTrue
-
If True, it will merge into dest dict, if not it will make a new copy from that dict and return it.
CLI Example:
salt '*' defaults.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.
salt.modules.defaults.merge(dest, src, merge_lists=False, in_place=True)
-
Allows setting 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
- merge_listsTrue
-
If True, it will also merge lists instead of replace their items.
- in_placeTrue
-
If True, it will merge into dest dict. if not it will make a new copy from that dict and return it.
It is more typical to use this in a templating language in formulas, instead of directly on the command-line.
salt.modules.defaults.update(dest, defaults, merge_lists=True, in_place=True)
© 2021 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.defaults.html