mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
meta/schema.yml held credential definitions and their runtime values, but the name said 'schema' and read like structural metadata next to services.yml and volumes.yml. Nothing in the file is a schema in the sense the other meta files use the word, and a contributor had to open it to learn it holds secrets. 62 role files renamed. ROLE_FILE_META_SCHEMA becomes ROLE_FILE_META_SECRETS and keeps its role as the SPOT the path is built from. Two readers bypassed that constant and spelled the name themselves: utils/cache/applications.py built meta_dir / 'schema.yml' twice, and plugins/lookup/application_gid.py carries the filename in the marker list it detects application roles by. Left behind, the rename would not have raised — credentials would have resolved empty and the role would have stopped counting as an application. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.4 KiB
1.4 KiB
applications lookup
This page describes how agents handle application defaults after the removal of group_vars/all/05_applications.yml.
Rules
- Application defaults are discovered directly from each role's per-topic meta files:
roles/*/meta/services.yml,roles/*/meta/server.yml,roles/*/meta/rbac.yml,roles/*/meta/volumes.yml, plusroles/*/meta/secrets.yml(post-apply_schema()). Variants inroles/*/meta/variants.ymldeep-merge over the assembled per-role payload. See layout.md. - Agents MUST edit role-local meta sources, not recreate repository-wide generated application dictionaries.
- Runtime consumers MUST access merged application data via
lookup('applications')or a wrapper built on top of it. - Inventory overrides still belong in the normal
applicationsvariable path under inventories, group vars, host vars, or role vars.
Source Of Truth
- Defaults source:
roles/*/meta/{services,server,rbac,volumes,schema}.yml(+ optionalmeta/variants.yml) - Runtime entry point:
plugins/lookup/applications.py - Shared aggregation helper:
utils/cache/applications.py
Why
The repository no longer maintains a generated 05_applications.yml artifact. Keeping defaults close to the owning role reduces duplication and avoids stale generated state.