Commit Graph
279 Commits
Author SHA1 Message Date
Alejandro Roman 3f82fb1ac8 feat(prometheus-comm): make sure to move logic into separate temapltes and fix issues in code 2026-04-23 00:31:14 +04:00
Alejandro Roman a4c46aed65 feat(prometheus-comm): fix issues, make test working and ensure communication works correctly as expected 2026-04-23 00:31:13 +04:00
Alejandro Roman b61359c85c feat(prometheus-intergration): Add all the logic need it for all apps with prometheus, missin playwright still 2026-04-23 00:31:11 +04:00
Alejandro Roman 8831d32c35 fix(mattermost): Fixing the SSO button for new version, now is back again 2026-04-23 00:23:24 +04:00
kevinveenbirkenbachandClaude Opus 4.7 2dbb2aaa1a feat(email): introduce lookup('email') plugin, migrate all consumers
Moves the SYSTEM_EMAIL_* resolution logic out of group_vars/all/03_email.yml
into a dedicated Ansible lookup plugin, so every role template reads outgoing
mail settings via lookup('email') (global) or lookup('email', application_id)
(per-app). Per-app compose.services.email is merged on top of the resolved
defaults; SYSTEM_EMAIL_* variables remain usable as an inventory escape hatch.

Also splits the email docs: administrator-facing configuration stays under
docs/administration/configuration/, plugin contract and extension rules move
to docs/contributing/design/services/email.md. services.md is relocated to
services/base.md so the services/ subtree can host per-service design pages.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 22:47:40 +02:00
kevinveenbirkenbachandClaude Opus 4.7 8ce9179706 fix(lookups,web-app-peertube): finish users/applications migration and harden OIDC plugin install
- Resolve merge conflict in web-app-peertube/vars/main.yml; migrate
  remaining `applications |` and `users.*` references to
  `lookup('applications')` / `lookup('users', ...)` in web-app-odoo and
  web-app-decidim (compose, env, playwright, setup tasks).
- web-app-peertube: split OIDC tasks into oidc/{enable,disable}.yml,
  add install_mem_limit filter + PEERTUBE_MEM_LIMIT /
  PEERTUBE_OIDC_PLUGIN_INSTALL_MEM_LIMIT vars to raise the cgroup ceiling
  during the one-off `npm run plugin:install` exec (prevents OOM-SIGKILL
  that was surfacing as "Container is restarting"); add
  upsert-oidc-plugin.sql.j2 and diagnostics.sh.
- CI: test-deploy-{local,server,universal,workstation}.yml tweaks plus
  scripts/github/{dump_runner_state,enlarge_swap}.sh for constrained
  runners.
- cli/meta/applications/ressources: new CLI entry with unit tests.
- Misc config/docs updates across dashboard, mailu, mattermost, asset,
  cdn, file roles and contributing docs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 10:14:21 +02:00
github-actions[bot] 2486a59cc2 update(images): update Docker image versions 2026-04-21 07:09:05 +00:00
kevinveenbirkenbach 262e1b43fc Merge branch 'main' into fix/users-applications.yml
# Conflicts:
#	docs/contributing/design/services.md
#	plugins/lookup/applications_current_play.py
#	plugins/lookup/service.py
#	roles/sys-stk-backend/lookup_plugins/service_should_load.py
#	roles/sys-stk-backend/tasks/_load_service.yml
#	roles/sys-stk-backend/vars/main.yml
#	roles/sys-svc-compose/templates/base.yml.j2
#	roles/sys-svc-mail/tasks/01_core.yml
#	roles/sys-utils-service-loader/tasks/load_frontend_service.yml
#	tests/unit/plugins/lookup/test_applications_current_play.py
#	tests/unit/plugins/lookup/test_service.py
#	tests/unit/roles/sys-stk-backend/lookup_plugins/test_service_should_load.py
2026-04-15 23:59:54 +02:00
kevinveenbirkenbachandClaude Opus 4.6 b70a783423 refactor(lookups): migrate to runtime applications/users lookups
Replaces inline `applications`/`users` merging with dedicated lookup
plugins and runtime hydration. Introduces `add_csp_hash` filter,
integrates sort into `find_dock_val_by_bkp_entr`, splits the Keycloak
one-shot realm import into `05a_realm_import_run.yml`, and fixes the
Mastodon administrator task YAML. Removes obsolete `csp_hashes` filter,
`sys-token-store` Jinja filter, and empty CLI setup modules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 23:44:19 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 1bcb7cfbb0 Merge branch 'main' into feature/service-refactoring
Resolve conflicts:
- docs/agents/action/iteration.md: keep both new bullets (SERVICES_DISABLED
  proposal + make test requirement)
- docs/contributing/design/services.md: deleted (renamed to
  docs/contributing/code/services.md in this branch)
- group_vars/all/20_services.yml: keep deletion from this branch (req-001)
- tests/lint/ansible/roles/test_service_core_first_task_run_once.py:
  use build_service_registry_from_roles_dir (req-001) with repo_root()
  from main for robust path resolution

Fix broken relative links caused by rename and deletion of files:
- docs/contributing/design/architecture.md: services.md → ../code/services.md
- docs/contributing/design/exceptions.md: load_frontend_service.yml →
  load_service.yml
- docs/requirements/001-service-registry-refactoring.md: fix paths for
  unit.md, integration.md, principles.md, documentation.md, AGENTS.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 19:58:51 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 be6a310d59 refactor(services): implement role-local service registry (req-001)
- Delete group_vars/all/20_services.yml; all service metadata now lives
  in each role's config/main.yml under compose.services.<name>
- Rename generic 'database' service key to explicit 'mariadb'/'postgres'
  across all app roles; remove legacy type: field
- Add utils/service_registry.py and plugins/lookup/service_registry.py
  as the single source of truth for service discovery
- Add utils/database_service.py to centralize DB service resolution
- Delete service_load_enabled filter and service_should_load lookup;
  replaced by service lookup plugin
- Update sys-utils-service-loader to run in constructor stage and use
  generic load_service.yml; remove load_frontend_service.yml
- Add _service_loader_preloading guard to sys-svc-compose,
  sys-svc-webserver-core and sys-ctl-alm-compose to prevent
  health-checks/alarms from firing during preload phase
- Replace manual load_app.yml calls for shared DB/Mailu with assert-
  based preload validation in sys-svc-rdbms and sys-svc-mail
- Update networks.yml.j2 templates to resolve LDAP/AI networks via
  service_registry instead of hardcoded role names
- Migrate all tests to new service discovery API; delete obsolete tests
- Update docs/contributing/code/services.md to reflect role-local model

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 19:33:20 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 9eef2a8ce4 chore(deps): update Docker image versions
- baserow: 2.1.6 → 2.2.0
- funkwhale/front + api: 2.0.0 → 2.0.1
- mattermost: 11.5.1 → 11.6.0
- prometheus: v3.2.1 → v3.11.1
- shopware/opensearch: 3.5.0 → 3.6.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 00:15:56 +02:00
kevinveenbirkenbach b3738e1612 Merge branch 'infinito-nexus:main' into main 2026-04-05 21:33:57 +02:00
Alejandro Roman e8cb7057c5 fix(playwright-mattermost): switch to universal logout and remove manual biber provisioning 2026-04-04 15:53:40 +04:00
Alejandro RomanandClaude Sonnet 4.6 ec47c688fd Add Playwright E2E tests for Mattermost (#538)
- New playwright.spec.js: two scenarios — SSO login via GitLab OAuth2
  endpoint (bypasses missing EnableSignInWithGitLab client config key in
  v11.5.1), channel view verification, API logout (bypasses nginx /logout
  intercept); and biber→administrator direct message flow using isolated
  browser contexts
- New playwright.env.j2: injects OIDC, Mattermost URL and user credentials
- tasks/01_setup.yml: create/add/convert administrator and biber users to
  team and gitlab SSO auth via LDAP uidNumber
- env.j2: add MM_EXPERIMENTALSETTINGS_DISABLELANDINGPAGE=true to prevent
  /landing SPA redirect in fresh browser contexts
- README.md: fix H1 so dashboard card renders "Explore Mattermost" link

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:49:13 +04:00
kevinveenbirkenbach 98e1100ac6 Reapply "Feature/taiga ldap"
This reverts commit 1b600aeacc.
2026-04-01 20:19:12 +02:00
kevinveenbirkenbach 1b600aeacc Revert "Feature/taiga ldap" 2026-04-01 12:19:49 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 be341234bb feat: register web-app-mailu as 'email' service and enforce dependency
- Add 'email' key (role: web-app-mailu, type: frontend) to SERVICE_REGISTRY
- Declare compose.services.email with enabled: true and shared: true in all
  33 app roles that reference web-app-mailu or use SYSTEM_EMAIL_* variables
- Add integration test test_mailu_service_dependency.py that enforces this
  constraint for any future role additions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 01:13:56 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ec2b513bde feat(config): enforce shared consistency for all enabled services
- Add shared: true to logout, oauth2, and greenlight services wherever
  enabled: true was set without a shared declaration
- Add # noqa: shared comment before role-local internal containers
  (redis, worker, web, opensearch, search) that are intentionally
  not shared
- Add missing enabled: false to ollama in svc-ai-ollama (shared was
  declared without enabled, violating the new consistency rule)
- Add integration test test_service_shared_consistency to enforce:
  Rule 1: enabled=true requires shared=true or a # noqa: shared comment
  Rule 2: shared key requires enabled key to be present

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:13:34 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 acd3b716eb feat(config): set dashboard shared for all enabled dashboard roles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 19:47:05 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 563b0c3c8c feat(cdn): add css/javascript as frontend services pointing to web-svc-cdn
Ensures web-svc-cdn is loaded whenever any app has css or javascript
injection enabled, by registering css and javascript as service keys in
20_services.yml (both mapping to web-svc-cdn). Adds shared: true to all
css/javascript compose service entries across app and svc role configs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 15:47:07 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 536c543729 chore: update Docker image versions to latest
- funkwhale/front + funkwhale/api: 1.4.0 -> 2.0.0
- mattermost-team-edition: 7.10.5 -> 11.5.1
- mediawiki: 1.44 -> 1.45
- mobilizon: 5.2.0 -> 5.2.3
- shopware/composer: 2.7 -> 2.9
- opensearchproject/opensearch: 2.12.0 -> 3.5.0

Skipped: moodle (LTS pin), openproject (major pin)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 02:19:06 +01:00
kevinveenbirkenbach ef630a4692 Add min_storage metadata for missing web apps 2026-03-22 18:57:09 +01:00
Alejandro Roman 1cb175041d fix(mattermost): change chat to mattermost, add depracation dns, delete redundant code and followed more comments from kevin 2026-03-17 10:50:26 +01:00
Alejandro Roman 06ea113a4d fix(mattermost): Fix the CI issues and add Gitlab functionality 2026-03-17 10:50:26 +01:00
Alejandro Roman 98d150062c Change author, varaibles more readable and add a fix for DNS 2026-03-17 10:50:26 +01:00
Alejandro Roman 2ef72ccfbb feat(mattermost): Fix the curl issues and make it fully idempotent 2026-03-17 10:50:25 +01:00
Alejandro Roman bb77f7210b feat(mattermost): Refactor the logic to follow strucutrre of prohject + fix all the issues on deployment with Ansible roles 2026-03-17 10:50:25 +01:00
Alejandro Roman 61b4b2207b feat(mattermost): created the roles and config for mattermost 2026-03-17 10:50:25 +01:00