mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 12:17:13 +00:00
The dashboard card of every app opened its primary domain, so Matrix led to the Synapse status page and Stalwart to its admin UI. A role can now declare services.dashboard.card: <key of meta/domains.yml canonical>; docker_cards builds the card URL with lookup('canonical_url', app, key), the Apps menu reuses it, and roles_with_service('dashboard') hands the same domain to the tile e2e spec. Matrix sets card: element, Stalwart card: webmail. Without card nothing changes, and the prometheus/matomo target lists are untouched. A lint requires the key to resolve in the role's own domains.canonical.
The Matrix ansible flavor also sets Synapse's web_client_location to Element through matrix_synapse_configuration_extension_yaml, as the compose flavor already does, so matrix.<domain>/ redirects there. Merge note: feature/iam-profile-rbac defines the same extension variable inside the OIDC block; the next merge must combine both into one block (agreed with that session).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Custom Lookup Plugins for Infinito.Nexus
This directory contains custom Ansible lookup plugins used within the Infinito.Nexus project.
When to Use a Lookup Plugin
- Load external data: Use lookups to retrieve data from files, APIs, databases, environment variables, or other external sources.
- Context-aware data access: Lookups can access the full Ansible context, including inventory, facts, and runtime variables.
- Generate dynamic lists: Lookups are often used to build inventories, secrets, or host lists dynamically.
Examples
# Load the contents of a file as a variable
my_secret: "{{ lookup('file', '/path/to/secret.txt') }}"
# Retrieve a list of hostnames from an external source
host_list: "{{ lookup('infinito_inventory_hosts', 'group_name') }}"
When not to Use a Lookup Plugin
- If you only need to manipulate or transform data already available in your playbook, prefer a filter plugin instead.