mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-10 12:47:04 +00:00
ansible-core's template lookup deep-copies every task variable on each call. The role-local template_shallow of web-opt-rdr-domains, which hands the builtin a top-level copy whose values stay shared, moves to plugins/lookup so every role can use it. The nine template lookups of the front injectors switch to it: six in sys-front-inj-design and one each in sys-front-inj-dashboard, sys-front-inj-logout and sys-front-inj-matomo. None of the switched templates or the lookups they call writes into the task variables. Tests: - the plugin renders like the builtin, never deep-copies the caller's values and leaves the caller's variables unchanged - for every role with design sources, clearnet and onion vhosts, with and without a logo, the design facts are identical to the builtin's, or it fails with the identical error - the dashboard, logout and matomo code renders identically - the redirect loop of web-opt-rdr-domains still renders through the shared plugin The saving per deploy is not measured by a timed deploy yet. 🎯 Fix: 90 % 💥 Break: 3 % 🌱 Efficiency: – ⚡ Speed: – 🛡️ Security: ~100 % 🏆 Score: 87 🚦 Gate: ✅ 90/5, efficiency and speed <= 100, security 100 % Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>