You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simplify codebase: modernize loops, split templates, improve CI (#14889)
* Simplify codebase: modernize loops, split templates, improve CI
This PR consolidates several simplification phases:
## Ansible Modernization
- Modernize `with_items` to `loop` across ~50 task files
- Add OS detection facts (is_ubuntu, os_family_lowercase)
- Condense inline YAML syntax where appropriate
## Template Splitting
- Split 568-line dnscrypt-proxy.toml.j2 into focused partials:
- global.toml.j2 (core settings)
- sources.toml.j2 (resolver sources)
- filters.toml.j2 (blocking rules)
- cache.toml.j2 (caching config)
## CI Workflow Improvements
- Create setup-algo composite action for shared CI setup
- Re-enable integration tests with health checks
- Fix smart-tests.yml silent lint failures (remove || true)
- Use env variables for GitHub SHAs (security)
## server.yml Async Simplification
- Reorganize VPN service configuration with clear sections
- Add performance_parallel_services toggle
- Simplify status display from json_query to inline conditionals
- Keep services explicit for readability
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Fix with_items to loop conversion: preserve list flattening
with_items automatically flattens nested lists, but loop does NOT.
The mechanical conversion broke iteration over list variables.
Wrong:
loop:
- "{{ users }}" # ['alice', 'bob'] treated as ONE item
Fixed:
loop: "{{ users }}" # Iterates over alice, bob correctly
For combined lists (users + server):
loop: "{{ users + [IP_subject_alt_name] }}"
Fixes IPsec certificate generation creating files named literally
'['alice', 'bob'].key' instead of separate alice.key and bob.key.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Fix integration test: use strongswan-starter service name on Ubuntu 20.04+
The StrongSwan service is named 'strongswan-starter' on Ubuntu 20.04+,
not 'strongswan'. The test was checking the wrong service name, causing
false failures even when StrongSwan was actually running.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Fix IPsec path issues: remove trailing slashes and fix test paths
1. Remove trailing slashes from ipsec_config_path and ipsec_pki_path
in roles/strongswan/defaults/main.yml (causes double slashes)
2. Fix integration test to check correct subdirectories:
- .p12 files are in ipsec/manual/
- .mobileconfig files are in ipsec/apple/
3. Fix strongswan service name check (strongswan-starter on Ubuntu 20.04+)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
---------
Co-authored-by: Claude <[email protected]>
0 commit comments