mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 20:26:33 +00:00
A swarm docker stack deploy env-file value must be a single physical line; the multi-line GITLAB_OMNIBUS_CONFIG was read as separate whitespace-named env entries and aborted the deploy. Add a depth-aware ruby_single_line filter that collapses the Ruby program to one line (statement-boundary newlines at bracket depth 0 become ';', newlines inside an open bracket or a string become a space so hash/array literals like the OIDC omniauth_providers stay valid) and apply it on the swarm branch only; compose keeps the multi-line value unchanged. Covered by tests/unit/plugins/filter/test_ruby.py (10 cases incl. a realistic omnibus config, escaped quotes and nested literals). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Custom Filter Plugins for Infinito.Nexus
This directory contains custom Ansible filter plugins used within the Infinito.Nexus project.
When to Use a Filter Plugin
- Transform values: Use filters to transform, extract, reformat, or compute values from existing variables or facts.
- Inline data manipulation: Filters are designed for inline use in Jinja2 expressions (in templates, tasks, vars, etc.).
- No external lookups: Filters only operate on data you explicitly pass to them and cannot access external files, the Ansible inventory, or runtime context.
Examples
{{ role_name | get_entity_name }}
{{ my_list | unique }}
{{ user_email | regex_replace('^(.+)@.*$', '\\1') }}
When not to Use a Filter Plugin
- If you need to load data from an external source (e.g., file, environment, API), use a lookup plugin instead.
- If your logic requires access to inventory, facts, or host-level information that is not passed as a parameter.