Commit Graph
2780 Commits
Author SHA1 Message Date
kevinveenbirkenbach 289a05ac13 Merge branch 'main' into feature/lint 2026-03-23 10:23:08 +01:00
kevinveenbirkenbach 65abbb0695 Merge branch 'main' into feature/playwright-e2e-test 2026-03-22 23:09:03 +01:00
kevinveenbirkenbach 45210eacc6 Merge branch 'main' into fix/codeql-python-alerts 2026-03-22 22:36:58 +01:00
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 d8999e2ef5 Merge branch 'main' into feature/playwright-e2e-test 2026-03-22 21:17:47 +01:00
kevinveenbirkenbach fe764735c3 Stabilize webserver and tree unit tests 2026-03-21 11:56:18 +01:00
kevinveenbirkenbach f45e0b001e fix(codeql): resolve remaining python alerts 2026-03-21 11:06:59 +01:00
kevinveenbirkenbach 81a445cfe2 Annotate missing Playwright specs in CI 2026-03-21 11:00:43 +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 003a3a0b84 Merge branch 'main' into feature/lint
Resolve merge conflicts, keep the cleanup script move to scripts/image, and fix the resulting lint regressions.
2026-03-21 01:36:58 +01:00
kevinveenbirkenbach de4d485d86 Refactor domain helpers and DNS fallback generation 2026-03-21 01:19:49 +01:00
kevinveenbirkenbach 38ecde6525 Merged main into playwright 2026-03-20 13:08:20 +01:00
kevinveenbirkenbach 9c62879c27 Handle explicit failure paths in retry integration tests 2026-03-20 02:15:03 +01:00
kevinveenbirkenbach 44ea2df452 Fix dev workflow image build and docker repo bootstrap 2026-03-19 19:11:51 +01:00
kevinveenbirkenbach ad3f159548 Require Docker Compose in dev packaging 2026-03-19 11:25:49 +01:00
kevinveenbirkenbach ff4b03c344 Fix strong_password filter module_utils path 2026-03-19 10:49:16 +01:00
kevinveenbirkenbach d720937763 Fix EL9 RPM Python packaging dependency 2026-03-19 04:33:35 +01:00
kevinveenbirkenbach ab96c12a6c lint formated 2026-03-19 03:13:47 +01:00
kevinveenbirkenbach 3b11d7f469 feat(packaging): add distro packages and install via package metadata 2026-03-19 02:53:15 +01:00
kevinveenbirkenbach de555f6bc3 add get_url_retry plugin and migrate get_url usages 2026-03-19 01:58:11 +01:00
kevinveenbirkenbach c6f5fdea15 refactor plugins layout and migrate uri calls to uri_retry 2026-03-19 01:41:07 +01:00
kevinveenbirkenbach 9f169321ed Merge branch 'main' into feature/playwright-e2e-test 2026-03-18 02:18:44 +01:00
kevinveenbirkenbach 1f9a0d9778 feat(test-e2e-playwright): finalize role-based playwright runner and tests 2026-03-17 03:57:35 +01:00
kevinveenbirkenbach 4e602dbb41 Adjust dashboard frame-ancestors token and update CSP unit test 2026-03-16 23:45:00 +01:00
kevinveenbirkenbach 8ed583dde9 fix(ansible): remove deprecated disable_lookups and set loop_var 2026-03-16 11:51:56 +01:00
kevinveenbirkenbach a0477f1bcf refactor(sys-stk-backend): move service load condition into role lookup plugin 2026-03-16 11:29:29 +01:00
kevinveenbirkenbach 846444effa fix(tls): unify self-signed CA env for health services 2026-02-23 23:53:18 +01:00
kevinveenbirkenbach cf02e4ec2c test(integration): ignore ansible runtime vars in variable usage check 2026-02-23 19:38:02 +01:00
kevinveenbirkenbach 468761e5c2 fix(ansible-modules): keep /usr/bin/python shebang and adjust shebang integration test 2026-02-23 09:46:10 +01:00
kevinveenbirkenbach 54dd2fd11d test(integration): enforce portable python shebangs 2026-02-23 09:03:53 +01:00
kevinveenbirkenbach 165a7136c6 Strip sys-ctl- prefix in unit_name lookup 2026-02-22 22:26:33 +01:00
kevinveenbirkenbach e8d3e8091e Solved tests 2026-02-22 03:36:40 +01:00
kevinveenbirkenbach 1dc350e9f9 Use command_path lookup for pip-installed CLI binaries 2026-02-22 02:27:40 +01:00
kevinveenbirkenbach 384e590388 added linebreak 2026-02-21 23:46:17 +01:00
kevinveenbirkenbach b95a231a37 refactor(webserver): remove explicit fs owner/group handling 2026-02-21 21:41:14 +01:00
kevinveenbirkenbach ec30948546 fix(deploy): use bash -lc for commands with pipefail 2026-02-21 16:05:42 +01:00
kevinveenbirkenbach 584d2629c9 test(integration): forbid sh -lc commands using pipefail 2026-02-21 16:00:05 +01:00
kevinveenbirkenbach 932e97b1c9 Whitelisted ansible variables 2026-02-20 17:15:45 +01:00
kevinveenbirkenbach 0710c41f91 fix(ci): run mirror resolver with venv python in container 2026-02-20 11:25:46 +01:00
kevinveenbirkenbach 1fb252fc7d refactor(inventories,roles): migrate util-* to bundle inventories and unify AUR handling
Migrates large parts of the legacy util-* role structure to inventory-driven
bundles and standardizes AUR installation via central system roles.

- Adds `web-svc-legal`, `web-svc-asset`, and `web-app-dashboard` to all server bundles.
- Removes `util-srv-corporate-identity` entirely.
- Introduces new workstation bundle inventories:
  `admin`, `admin-network`, `browser`, `design`, `dev-*`, `game-*`, `office`.
- Uses bundle variables `SYS_PACKAGES` and `SYS_AUR_PACKAGES` as the primary
  installation mechanism.
- Removes/replaces obsolete util-desk/util-dev roles where fully covered.
- Renames dev roles:
  `util-desk-dev-core` -> `dev-core`,
  `util-desk-dev-python` -> `dev-python`,
  `util-desk-dev-arduino` -> `dev-arduino`.
- Adds missing `application_id` vars for renamed roles.
- Removes the entire `util` section from `roles/categories.yml`.
- Replaces direct `kewlfft.aur.aur` calls in desktop/driver roles with
  a centralized wrapper role.
- Introduces new role `sys-aur-install` as AUR installation wrapper.
- Migrates `dev-yay` to `sys-aur` and adds `SYS_AUR_PACKAGES: []` default.
- Extends constructor stage:
  auto-load `sys-package` when `SYS_PACKAGES` is set,
  and `sys-aur` + `sys-aur-install` when `SYS_AUR_PACKAGES` is set.
- Cleans up stage loading:
  removes util-srv from `02_server.yml`,
  reduces workstation loading to `desk-roles.yml` + `drv-non-free`.
- Updates integration/unit tests for the new invokable and include behavior.
- Integration test now accepts static `include_tasks` references.
- Fixes recursion risk between `sys-aur` and `sys-aur-install` by setting
  `run_once_sys_aur` at the beginning of `sys-aur/tasks/01_core.yml`.

BREAKING CHANGE:
- `util-*` categories and bundle paths are no longer part of stage loading.
- Multiple `util-desk-*`, `util-dev-*`, and `util-srv-*` roles were removed.
- Deployment groups must be migrated to the new bundle/role naming.
2026-02-19 14:10:59 +01:00
kevinveenbirkenbach dc05daea17 fix(unit_name): resolve templated vars and version lookup fallback 2026-02-17 16:56:29 +01:00
kevinveenbirkenbach fd1c0254a5 refactor(sys-service, unit_name): switch to SOFTWARE_DOMAIN and add version-based unit pruning
- Change unit_name lookup plugin to use SOFTWARE_DOMAIN instead of SOFTWARE_NAME
  for versioned systemd unit generation
- Update unit tests to reflect SOFTWARE_DOMAIN requirement
- Introduce sys-service prune phase to remove old-version services and timers:
  - stop and disable outdated units
  - delete old unit files
  - trigger daemon-reload when necessary
- Reorder sys-service core flow: prune → lockdown → reset
- Rename and reindex task files for clearer execution order
- Update internal includes accordingly

https://chatgpt.com/share/e/69945873-c4b4-8013-98e3-eb7f7a879853
2026-02-17 13:00:38 +01:00
kevinveenbirkenbach b878f5d2a0 refactor(systemd): replace get_service_name filter with unit_name lookup plugin
https://chatgpt.com/share/e/699449d6-580c-8013-8bcc-6a8545c6762f
2026-02-17 11:58:25 +01:00
kevinveenbirkenbach bb0174625a feat(version): introduce controller-side version lookup plugin
- Remove legacy FILE_VERSION path usage
- Add custom lookup plugin `version` to read pyproject.toml
- Resolve version via [project].version with poetry fallback
- Refactor sys-version role to use lookup('version')
- Add unit tests for version lookup plugin

https://chatgpt.com/share/e/699433f7-1278-8013-af8e-da1b7f303886
2026-02-17 10:52:55 +01:00
kevinveenbirkenbach 535ff88189 fix(domains): robust recursive flattening in generate_all_domains and remove json workaround
* replace shallow flatten logic with recursive _add helper to correctly handle nested dict/list structures
* prevent unhashable _AnsibleLazyTemplateList from reaching set(flat)
* remove unnecessary to_json/from_json roundtrip in constructor
* add unittest coverage for mixed str/list/dict domain inputs and deduplication behavior

https://chatgpt.com/share/698e598e-3284-800f-9917-ca1eaa4e6572
2026-02-12 23:51:37 +01:00
kevinveenbirkenbach e32b0d5069 test(lint): exclude inventories from vars usage validation
* introduce EXCLUDED_TOP_LEVEL_DIRS in test_vars_usage_in_yaml
* skip files under inventories/ when scanning YAML/Jinja sources
* prevent bundle metadata vars from triggering false-positive unused var failures

Inventories are declarative data bundles, not task/template files,
and may legitimately contain vars not referenced in Jinja or Ansible expressions.

https://chatgpt.com/share/698df4ba-20b4-800f-93ab-ee5d54f62dca
2026-02-12 17:41:25 +01:00
kevinveenbirkenbach 92946ee008 refactor(core): introduce SOFTWARE_DOMAIN and unify homepage, tls, service, and oidc defaults
* add SOFTWARE_DOMAIN derived from SOFTWARE_NAME lowercased
* introduce DOMAIN_HOMEPAGE defaulting to dashboard domain if present, otherwise SOFTWARE_DOMAIN
* add automatic primary → homepage redirect mapping in constructor
* migrate TLS and CA paths from SOFTWARE_NAME|lower to SOFTWARE_DOMAIN
* update systemd unit suffix and timer/service discovery globs to SOFTWARE_DOMAIN
* switch OIDC default realm and client id to SOFTWARE_DOMAIN
* adjust SuiteCRM well-known software name to SOFTWARE_DOMAIN
* update unit tests to use SOFTWARE_DOMAIN for strict Jinja expansion

https://chatgpt.com/share/698db094-22bc-800f-8454-10d97f817659
2026-02-12 11:50:55 +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