In verwalter “rendering” is a process of applying schedule to configure specific application. It may consist of:
- Substituting variables in textual templates
- Running shell commands
- Sending signals to other processes or different kind of IPC
- Possible, but discouraged: calling HTTP APIs
Rendering for every role is deemed to be indepenedent of other roles. We also encourage, but cannot enforce the following properties:
- Atomic render of role (i.e. either it applied entirely, or not at all)
- Full configuration check before switching
Input to the rendering process is a mapping of variables to values. For each role we merge the following items from schedule:
Where latter variables override former ones.
Nested mappings are merged up to two level’s deep. I.e. if
is a mapping each key of it will be updated by
vars["common"]["info"] would be replaced
as a single atomic unit, regardless of whether it is an object or a string.