mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 18:29:21 +00: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.
 |