Commit Graph
47 Commits
Author SHA1 Message Date
kevinveenbirkenbach 2e37a3689f Merge branch 'main' into feature/lint
# Conflicts:
#	Dockerfile
#	scripts/administration/ghcr/cleanup_ci_images.sh
#	scripts/meta/wait/image.sh
2026-03-22 21:51:23 +01:00
kevinveenbirkenbach e8b69b8239 Refine min_storage validation warnings 2026-03-21 10:54:02 +01:00
kevinveenbirkenbach d8218babfc Fix DNS hosts fallback and domains CLI 2026-03-21 09:12:24 +01:00
kevinveenbirkenbach 189267496d Rename module_utils package to utils 2026-03-21 02:05:39 +01:00
kevinveenbirkenbach c6f5fdea15 refactor plugins layout and migrate uri calls to uri_retry 2026-03-19 01:41:07 +01:00
kevinveenbirkenbach 6efde55647 refactor(dashboard): rename web-app-desktop to web-app-dashboard and update service toggle
* replace compose.services.desktop with compose.services.dashboard across all roles
* rename role web-app-desktop to web-app-dashboard
* rename sys-front-inj-desktop to sys-front-inj-dashboard
* update resolver mapping to include web-app-dashboard when dashboard is enabled
* adjust CSP filters to reference dashboard for frame-ancestors handling
* update lookup plugins, filter plugins, templates, vars and run_once flags
* migrate all tests to dashboard naming and service key
* update role dependencies and port mappings
* remove legacy desktop role and variables

BREAKING CHANGE:
The service key compose.services.desktop has been renamed to compose.services.dashboard.
All custom configs, inventories, or overrides must be updated accordingly.

https://chatgpt.com/share/698da7ad-1978-800f-82b4-4755b17be026
2026-02-12 11:12:49 +01:00
kevinveenbirkenbach 449781fa73 fix(ci): make sufficient_storage JSON-safe and stabilize test matrix generation
Switch sufficient_storage CLI to support JSON output and update CI matrix
generation to use JSON-only pipelines, preventing roles from collapsing
into a single matrix entry.
2026-02-10 14:06:54 +01:00
kevinveenbirkenbach 2eaa566efb refactor(cli): decouple invokable discovery from Ansible filter plugins
Switch cli.meta.applications.invokable to call module_utils.invokable.list_invokable_app_ids
directly instead of using filter_plugins.get_all_invokable_apps.

This removes the Ansible filter dependency from the CLI, making invokable discovery
pure-Python, deterministic, and easier to test.

https://chatgpt.com/share/698b225f-2c2c-800f-bd0e-624e82e5460a
2026-02-10 13:19:32 +01:00
kevinveenbirkenbach df9a23ceed feat(ci): unify invokable app discovery and add lifecycle filtering
- Move server/workstation/universal resolution into Python CLI
- Add optional --lifecycles filter to cli.meta.applications.type
- Gate invokable roles by galaxy_info.lifecycle in module_utils.invokable
- Replace legacy resolve-invokable-roles.sh with CLI-based implementation
- Apply global hard excludes consistently across all deploy types
- Fix SC2086 issues and make lifecycle argument handling shell-safe
- Extend unit tests to cover lifecycle forwarding and normalization

https://chatgpt.com/share/698b0039-c4c4-800f-b962-7033324c07a8
2026-02-10 11:50:09 +01:00
kevinveenbirkenbach 84782f3b22 refactor(invokable): centralize app discovery, add type grouping, and derive deploy stages from inventory groups
https://chatgpt.com/share/698b0039-c4c4-800f-b962-7033324c07a8
2026-02-10 10:53:53 +01:00
kevinveenbirkenbach 05f0072a96 fix(cli): make invokable command patchable and forward args unchanged
- Import get_invokable_paths and get_non_invokable_paths at module level
  so unittest.mock.patch can replace them
- Forward roles_file and suffix unchanged to preserve CLI boundary
- Remove implicit default resolution from CLI
- Keep error handling and output behavior unchanged

https://chatgpt.com/share/6987a639-0f8c-800f-9ee0-70cff683aa56
2026-02-07 21:52:29 +01:00
kevinveenbirkenbach 7e6caf7613 Solved wrong parent root bug 2026-02-07 19:53:12 +01:00
kevinveenbirkenbach b78ab29218 Renamed config entry from docker to compose
https://chatgpt.com/share/69870f54-d708-800f-9870-e9ae5a4bff44
2026-02-07 11:09:36 +01:00
kevinveenbirkenbach 8a81630391 Added newline at file and POSIX compatible 2026-02-04 19:49:56 +01:00
kevinveenbirkenbach 5c499def02 Fixed collabora service for bbb
https://chatgpt.com/share/698062c6-0000-800f-928d-03fd39e7d38c
2026-02-02 09:38:33 +01:00
kevinveenbirkenbach 42e809ae4f feat(cli): add callorder analyzer for tasks/groups role execution
Introduce a CLI tool to inspect and analyze role call order per group file,
supporting marker-based splitting, role filtering, and effected-group views.

https://chatgpt.com/share/697f5565-2b44-800f-999c-dbb2fb8ec449
2026-02-01 14:29:44 +01:00
kevinveenbirkenbach 546bf78cd4 feat(services,tls): register simpleicons as shared service for auto resolution
- Add simpleicons → web-svc-simpleicons to service resolver
- Ensure simpleicons is transitively included via docker.services flags
- Fix missing TLS SAN generation for icons.infinito.example
- Clean up unused service resolution modules

https://chatgpt.com/share/697eaf81-5500-800f-aec9-8902601a0124
2026-02-01 02:42:14 +01:00
kevinveenbirkenbach d2694566e5 feat(runtime): add development runtime marker and unified runtime detection
- introduce env.development marker for local dev runtime
- add cli.meta.runtime module with library API and CLI entrypoint
- detect runtime via ACT/GitHub/marker with explicit RUNTIME override
- use env.development as docker-compose env override
- pass RUNTIME=dev into development inventory generation
- add make setup-development helper

https://chatgpt.com/share/69720fd6-a1c8-800f-b1e2-6909aa63643a
2026-01-22 12:53:42 +01:00
kevinveenbirkenbach 5cfa73941d **fix(cli): remove roles_root argument and resolve roles path internally**
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
2026-01-19 19:10:20 +01:00
kevinveenbirkenbach c92aff464b feat(ci): add min_storage validation and CI filtering with warnings
- Add sufficient_storage CLI for validating docker.services.<entity>.min_storage
- Introduce role_resource_validation utility with human-friendly size parsing
- Filter CI app discovery by available runner storage (default: 12GB)
- Emit GitHub Actions warnings for:
  - missing min_storage metadata (treated as 0GB)
  - roles exceeding available runner storage
- Add BigBlueButton min_storage metadata (50GB)
- Add unit tests for validation logic and CLI behavior
- Add humanfriendly dependency for size parsing

https://chatgpt.com/share/696e097b-1038-800f-b8fc-23e9dadfa021
2026-01-19 11:37:28 +01:00
kevinveenbirkenbach 72929e83fc feat(shopware,credentials): add strong OpenSearch admin password generation
- add strong_password generator with special characters
- introduce opensearch_initial_admin_password credential
- wire OpenSearch admin password via env template
- decouple OpenSearch admin password from Shopware admin user
- minor formatting cleanup in service resolver
2026-01-18 23:33:19 +01:00
kevinveenbirkenbach 160a3a3233 feat(services): resolve shared onlyoffice provider role
- add onlyoffice enabled+shared → web-svc-onlyoffice service resolution
- enable shared onlyoffice for Nextcloud
- fix missing trailing newlines

https://chatgpt.com/share/696d54a1-9dbc-800f-8507-088bad56bc48
2026-01-18 22:50:45 +01:00
kevinveenbirkenbach e11dd60714 feat(services): resolve coturn as shared provider and refactor BBB coturn handling
- add coturn enabled+shared → web-svc-coturn service resolution
- refactor BigBlueButton coturn logic to distinguish local vs shared coturn
- introduce BBB_COTURN_LOCAL_ENABLED flag
- split TURN secrets into local and shared variants
- update dependencies, env and compose templates accordingly
- enable shared coturn in BigBlueButton and Nextcloud configs

https://chatgpt.com/share/696d54a1-9dbc-800f-8507-088bad56bc48
2026-01-18 22:46:02 +01:00
kevinveenbirkenbach 7a1fb02554 test(cli): add unit tests for combined + services resolution (services edges, desktop, cycles)
- add role_config_path support and services edges in combined resolver/tree
- add services resolver mapping with desktop enabled rule (non-shared)
- add unittest coverage for repo_paths, yaml parsing, services mapping/BFS, and combined tree cycles
- update tests to reflect new stable path expectations and tree output

https://chatgpt.com/share/696cb80f-e8f4-800f-b062-e47985b4b074
2026-01-18 11:37:41 +01:00
kevinveenbirkenbach cf216014e3 refactor(cli): introduce combined role resolution and reorganize meta resolvers
- add cli.meta.applications.resolution.combined to resolve run_after + app-only dependencies
- add optional --tree output for combined resolution
- add cli.meta.applications.resolution.dependencies (app-only) resolver
- move run_after resolver to cli.meta.applications.resolution.run_after
- update test deploy dependency resolver to use combined module
- add unit tests for combined/dependencies/run_after resolvers
- minor cleanup: remove stray header comment, fix newline in vars, tidy YAML formatting

https://chatgpt.com/share/696ca531-9644-800f-98c0-bae58c0aff41
2026-01-18 10:17:26 +01:00
kevinveenbirkenbach 4146535404 Adapted path 2026-01-09 22:35:06 +01:00
kevinveenbirkenbach d6b0fb3be7 refactor(ci): run server deploy per app across all distros in single job
* Avoid GitHub Actions matrix job limits by looping distros inside the per-app job
* Simplify discover output emission and pin checkout/upload-artifact to stable versions
* Tidy long log lines and minor formatting in deploy/test helpers

https://chatgpt.com/share/695fa9b9-4460-800f-bcc3-d566b83649b2
2026-01-08 13:57:22 +01:00
kevinveenbirkenbach 83985163e2 feat(cli): add run_after resolution command with cycle-safe traversal
- Introduce CLI tool to resolve galaxy_info.run_after dependencies transitively
- Detect and report circular run_after dependencies explicitly
- Validate role existence and run_after schema strictly
- Provide whitespace-separated output for easy shell usage
- Add comprehensive unittest coverage including CLI behavior and error cases

https://chatgpt.com/share/695f8e09-54f4-800f-9f5f-ed9c2fdd664b
2026-01-08 11:59:17 +01:00
kevinveenbirkenbach 29483a6415 cli: add lifecycle_filter command and fix help forwarding
- Introduce meta roles lifecycle_filter CLI to select roles by lifecycle
- Support whitelist/blacklist modes, selection filtering, and auto-detected roles dir
- Fix blacklist handling for roles with missing lifecycle
- Forward --help correctly to subcommand argparse
- Add unit tests for lifecycle filtering logic

https://chatgpt.com/share/695d09d2-c864-800f-9e23-b9db0c6f3537
2026-01-06 14:10:33 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI d0a2890a08 Potential fix for code scanning alert no. 125: Use of the return value of a procedure
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-21 15:51:36 +01:00
kevinveenbirkenbach 1fe0a420fa fix(cli): avoid runpy warnings by moving logic into command modules
Stop importing __main__ from package __init__.py to prevent runpy RuntimeWarning when using `python -m`.

- Move CLI logic into command.py modules
- Keep __main__.py as thin wrappers
- Update unit tests to import command modules directly

https://chatgpt.com/share/6947fb8e-550c-800f-8323-e36f92cb5bba
2025-12-21 14:52:09 +01:00
kevinveenbirkenbach f9573460e9 fix(deploy): force local CLI build for invokable resolution
- Drop legacy compatibility wrapper in cli.meta.applications.invokable
- Resolve repository root explicitly via pathlib
- Ensure filter_plugins are importable outside Ansible
- Run invokable discovery with INSTALL_LOCAL_BUILD=1 in deploy tests
- Make deploy.sh fail fast when invokable resolution is unavailable
- Normalize sorting and exclusion logic (drv-* roles, locale-safe sort)
2025-12-21 14:27:21 +01:00
kevinveenbirkenbach 6eb35ef450 refactor(cli): remove wildcard re-exports from __init__ wrappers
Replace `from .__main__ import *` with controlled re-exports based on `__all__`
to avoid namespace pollution and improve static analysis.

Public APIs remain unchanged while making re-export behavior explicit and
lint-friendly across all CLI subpackages.

https://chatgpt.com/share/6947c1d6-23d0-800f-9910-008ee277213c
2025-12-21 10:45:51 +01:00
kevinveenbirkenbach 5c6afd2cf6 p2pkg executed 2025-12-20 18:25:37 +01:00
kevinveenbirkenbach f775ae9dfa ci(deploy): run deploy tests with --missing and docker-based invokable excludes 2025-12-19 16:07:59 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI 1da7a25474 Potential fix for code scanning alert no. 79: File is not always closed
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-12-18 12:45:53 +01:00
kevinveenbirkenbach 7123841fb4 style: apply ruff autoformat 2025-12-17 16:37:21 +01:00
kevinveenbirkenbach 14a0268ec3 Solved ruff E741 2025-12-17 13:51:03 +01:00
kevinveenbirkenbach ad449c3b6a Adapted roles to new architecture 2025-07-17 15:39:31 +02:00
kevinveenbirkenbach 4e3c124f55 Added a tool to get full j2 files for debugging 2025-07-13 02:58:19 +02:00
kevinveenbirkenbach ead60dab84 Fail safed more parts of the code 2025-07-12 21:35:33 +02:00
kevinveenbirkenbach 3eb8b54a1a Restructured CLI meta commands 2025-07-12 17:05:00 +02:00
kevinveenbirkenbach 44834f9873 Added more debugging stuff 2025-07-11 21:04:55 +02:00
kevinveenbirkenbach 33276263b0 Another bulk of refaktoring cleanup 2025-07-11 18:57:40 +02:00
kevinveenbirkenbach 6780950257 Added run_after integration test 2025-07-11 13:53:12 +02:00
kevinveenbirkenbach d43fdc63ea Optimized inventory validator for wrong groups 2025-07-11 01:34:44 +02:00
kevinveenbirkenbach c160c58a5c Restructured CLI logic 2025-07-10 21:26:44 +02:00