Increase *mem_limit* from 2g to 4g and *pids_limit* from 2048 to 8192 to mitigate intermittent startup failures and 502 errors in CI caused by resource constraints during OnlyOffice initialization.
https://chatgpt.com/share/698cffcb-e4a8-800f-a674-22bdfad0a765
* add `image` and `version` to compose.services.openresty in config/main.yml
* replace hardcoded OPENRESTY_IMAGE and OPENRESTY_VERSION in vars/main.yml
* resolve image and version dynamically via `lookup('config', ...)`
* align role with centralized config-driven image management pattern
https://chatgpt.com/share/698c9d3f-5ea0-800f-9fef-1a5b7e4c8b60
Replace PHP-based healthcheck with a minimal curl command that verifies HTTP 200 on /index.php.
Removes Compose interpolation issues and simplifies readiness detection for improved CI stability.
https://chatgpt.com/share/698c5823-aa44-800f-978a-df9765e7f93d
* Remove custom Dockerfile and entrypoint (use published GHCR image)
* Simplify compose template to use prebuilt image
* Add credential schema for HMAC secret
* Align vars with config-based credential lookup
* Clean up redundant build-related variables and tasks
https://chatgpt.com/share/698c5332-51f0-800f-a555-fc04302d9f0d
Switch Matomo container healthcheck from curl to an internal PHP get_headers() check to avoid dependency on curl in the official image.
Accept HTTP 200 and 302 as healthy responses and increase start_period to 60s to prevent premature unhealthy states in slower CI environments.
https://chatgpt.com/share/698c5823-aa44-800f-978a-df9765e7f93d
* Replace ONLY_APP with space-separated WHITELIST across CI and local/act deploy tests
* Rename build-test-matrix.sh to scripts/meta/resolve/apps.sh and apply optional whitelist filter
* Add manual CI entry workflow to run orchestrator with distros/whitelist inputs
https://chatgpt.com/share/698c406c-0968-800f-ae84-1bcca023363c
Use curl in container healthcheck to explicitly validate HTTP 200 or 302 on /index.php, including timeout handling and failure fallback. Ensures bootstrap only runs when Matomo is truly HTTP-ready and improves reliability of service_healthy dependency.
https://chatgpt.com/share/698c350e-0758-800f-9693-16797d1f177a
- Rename compose service to align with dynamic service handling
- Pass base image and version as build args (CHESS_IMAGE/CHESS_VERSION)
- Make yarn install conditional on lockfile to prevent YN0028 failures
- Remove yarn install from runtime entrypoint to avoid startup rebuilds
https://chatgpt.com/share/698bcf8d-b540-800f-a026-93fb47180cc7
Universal roles are now covered exclusively by the constructor and destructor
stages, removing the universal stage execution to prevent duplicate role
invocations and redundant lifecycle handling.
https://chatgpt.com/share/698bcad1-d964-800f-8e23-2ac459da8c34
Add retry logic with delay for the one-shot Matomo bootstrap, ensure change
is only reported on success, and provide a detailed but safe debug dump
(stdout/stderr lengths, effective compose config, env and compose files)
when the bootstrap ultimately fails.
https://chatgpt.com/share/698bc6e7-230c-800f-bd9a-b50494514db9
Update unit tests to reflect the new invokable-driven classification logic by mocking invokable path discovery, removing legacy alias expectations, and adding coverage for universal and mixed cases. Also relocate CLI deploy tests into the unit test hierarchy for consistency.
Wrap `docker compose up` in a retry loop (6 attempts, 30s delay) to mitigate
temporary Docker Hub / registry 5xx pull failures. Add unit tests covering
success-after-retries, exhaustion behavior, and no-sleep on first success.
https://chatgpt.com/share/698b8d67-0084-800f-ad33-ec8933dfba15
- Remove alias-based group name handling from get_deployment_types_from_groups
- Make DEFAULT_RULES the single source of truth for server/workstation/universal
- Determine "universal" strictly as invokable roles not matched by server/workstation
- Update unit tests to reflect invokable-based semantics
This aligns Ansible filters and CLI behavior and avoids inventory-specific heuristics.
https://chatgpt.com/share/698b8125-d2a0-800f-9fbd-f3f9c8bc5023
Remove git-based build of universal-logout and deploy the service via a
prebuilt container image configured through compose service metadata.
Align logout service with entity_name-based lookup and resource limits.
Also tighten OnlyOffice status code checks to require HTTP 200 responses.
https://chatgpt.com/share/698b4699-ff08-800f-b88f-26d41910c3a9
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.
Refactor build-test-matrix.sh to process application lists strictly as JSON.
Remove text-based filtering and reimplement excludes and CI storage gating
using jq to avoid accidental whitespace joining and invalid app arrays.
https://chatgpt.com/share/698b19ac-9850-800f-b040-eb698d3954c4
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
Ensure build-test-matrix.sh always emits a single-line, valid JSON array by
quoting variables correctly and normalizing JSON output via jq -c, preventing
accidental app name concatenation in CI workflows.
https://chatgpt.com/share/698b19ac-9850-800f-b040-eb698d3954c4
- 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
- Skip CI on branch creation pushes (github.event.created)
- Detect version tags directly on the commit (v*)
- Expose is_version and version_tag as workflow outputs
- Drive release guard and release jobs by commit tag state instead of tag-push events
- Pass resolved version tag explicitly to release workflow
https://chatgpt.com/share/698b0398-4f54-800f-86c4-91260bc2a628
- Remove internal retry logic, transient error heuristics, and backoff from pull.py
- Let Ansible handlers control retries (10x, 30s delay) for compose pull/build
- Simplify pull.py to single-attempt run_or_fail execution with locking preserved
- Drop redundant timeout CLI flags; rely on environment variables instead
- Keep intelligent --ignore-buildable detection via `docker compose pull --help`
- Update unit tests to reflect new deterministic behavior and remove retry tests
https://chatgpt.com/share/6989ce5a-7f40-800f-950a-e108d6f4c070