mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-18 14:34:24 +02:00
24 lines
1.3 KiB
Django/Jinja
24 lines
1.3 KiB
Django/Jinja
# Config
|
||
|
||
The domains defined here can be customized by the system administrator. By default, they’re loaded from `../../group_vars/all/04_applications.yml`, but you can override them per application in your repository:
|
||
|
||
```yaml
|
||
applications:
|
||
{{ application_id }}:
|
||
variable_a: "test string" # Replaces the default value
|
||
variable_b: {} # Merges with the existing content
|
||
variable_c: [] # Replaces the default value (use caution with domains)
|
||
```
|
||
|
||
## Placeholder Logic with `<< >>`
|
||
|
||
You can reference values from the generated `defaults_applications` dictionary at build time by embedding `<< ... >>` placeholders inside your template. For example:
|
||
|
||
```yaml
|
||
url: "{{ web_protocol }}://<< defaults_applications.web-svc-file.domains.canonical[0] >>/assets"
|
||
```
|
||
|
||
- The `<< ... >>` placeholders are resolved by the [`DictRenderer`](../../../utils/dict_renderer.py) helper class.
|
||
- The CLI uses the [`DefaultsGenerator`](../../../cli/build/defaults/applications.py) class to merge all role configurations into a single YAML and then calls the renderer to substitute each `<< ... >>` occurrence.
|
||
- Use the `--verbose` flag on the CLI script to log every replacement step, and rely on the built‑in timeout (default: 10 seconds) to prevent infinite loops.
|