Implemented dict renderer to resolve assets

This commit is contained in:
2025-07-12 23:25:31 +02:00
parent 4f5afa1220
commit f07557c322
6 changed files with 305 additions and 85 deletions

View File

@@ -9,3 +9,15 @@ applications:
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 builtin timeout (default: 10 seconds) to prevent infinite loops.