Commit Graph
32 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Opus 5 673e994aa7 feat(lint): pin type and resolver on every container inspect
An untyped inspect searches every docker object kind, and a role's overlay network carries the same entity name as its main container, so the call can resolve the network and report a missing State key instead of naming the container. That is how the openresty assert died on every swarm job of run 30709070050.

Extend container-exec-resolver to cover inspect, stripping raw markers and quoted spans first so the flag walker survives Go template format strings. Add container-inspect-type, scoped to roles/ because the collision follows the entity naming convention and the outer act namespace carries no role networks. Sweep 40 call sites; suppress the delegate_to-resolved CIDs and the compose co-location probes with a stated reason.

Move the five container rules into tests/lint/ansible/shell/container/ and drop the container_ prefix from their filenames. Register both markers in the suppression docs, where the resolver marker was missing entirely.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 20:51:56 +02:00
kevinveenbirkenbachandClaude Opus 4.8 b8f1090ed0 fix(svc-runner): give the nested test deploy a 3h exec budget
The sync-pass test runs a full cold nested build plus reinstall deploy
in one container exec; the CI inventory's 60min
CONTAINER_EXEC_TIMEOUT SIGKILLed it mid-deploy (output truncated with
no nested recap). Export a 3h budget for the test - finite rather than
0 so the OS-level kill still fires on a wedged docker socket, bounded
by the outer 4h cli.timeout.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 16:15:28 +02:00
kevinveenbirkenbachandClaude Fable 5 808efad765 fix(test-e2e-cli): per-role CLI timeout via meta/tests.yml
svc-runner's CLI test runs a full nested reinstall deploy and needs
75+ minutes, so the uniform 3600s timeout killed it deterministically
in both modes. A new role_tests lookup reads roles/<id>/meta/tests.yml
(cli.timeout, scaled through the timeout lookup) with the existing
default as fallback, keeping the short hang-leash for every other CLI
test. svc-runner gets 4h and pins the nested deploy to variant 0; the
second matrix round only redeployed cdn+dashboard and added no
assertion value.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 21:13:40 +02:00
kevinveenbirkenbachandClaude Opus 4.8 2b44d9f7f9 fix(test-e2e-cli): stage CLI test assets on the node and SPOT the node src dir
The per-role existence asserts and the test script path were controller paths evaluated on the remote swarm node (docker connection, node checkout under /opt/infinito-nexus), so every svc-runner swarm job failed on a stat that could never succeed. Assert both required assets in one localhost-delegated loop, stage roles/<app>/files/test onto the node, run the staged script, and delegate the optional defaults/vars probes to the controller (they silently skipped before). svc-runner's test reaches its sources via RUNNER_SRC_DIR (compose: INFINITO_SRC_DIR dev-container mount; swarm: node checkout). The node checkout path itself moves into a single source of truth: INFINITO_NODE_SRC_DIR in default.env, consumed by the bootstrap/copy scripts, the swarm-playwright target, and the swarm inventory extras.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 17:30:36 +02:00
kevinveenbirkenbachandClaude Opus 4.8 fbe50d10ed fix(svc-runner): make the runner role swarm-compatible
Workers failed 'docker build: no Dockerfile': the build context, compose file, .env and runner binary were staged on the stack host only while every node deploys its own node-local runner stack. Build and push the image once on the manager (RUNNER_IMAGE_REF via the swarm registry, 04_image.yml) and let workers pull it; render compose.yml (template with lstrip_blocks, matching the replaced stack_host_template action), .env and the extracted run.sh on every node. Add a node_local kwarg to the compose_networks/container_networks/compose_restart/compose_only lookups so this node-local compose stack renders a bridge default network (workers cannot create overlays), keeps restart: unless-stopped (ephemeral runners died after one job) and keeps container_name under swarm; default is unchanged for every other role. Treat build/install.stamp as stale when the venv is missing and exclude ./build from the nested-src copy, closing the nested-e2e ruamel failure class. Regression tests for the node_local render paths; the network include tests now accept lookup kwargs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 02:37:26 +02:00
kevinveenbirkenbachandClaude Fable 5 0e644f8599 fix(joomla): stream plugin dir via exec stdin; lint against container cp
container cp needs its source on the node running the docker CLI, so
role_path sources break on swarm workers. The joomla plugin dir now
ships as a controller-side tarball through container exec -i. A new
repository lint forbids docker/container cp in tracked .yml and .sh
files; the six legitimate same-node uses carry justified nochecks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 17:05:56 +02:00
kevinveenbirkenbach 9b2f870777 Merge branch 'main' into feature/swarm-nfs 2026-07-01 05:37:36 +02:00
Alejandro Roman f4f6ae4366 make local use reinstall properly with all disabled 2026-06-30 10:15:48 +02:00
Alejandro Roman 2dd1580c27 fix space for github runner VM 2026-06-30 00:05:25 +02:00
Alejandro Roman 430d190ef6 fix disk issues in Github runners 2026-06-29 21:07:16 +02:00
Alejandro Roman 7890785a6e fix(svc-runner): mkdir /opt/src needs --user root for container cp 2026-06-24 21:14:13 +02:00
Alejandro Roman b4cf5a4389 refactor code and best pracites 2026-06-24 18:31:23 +02:00
Alejandro Roman a77b596271 remove async pass in local 2026-06-24 18:31:23 +02:00
Alejandro Roman 1e0ff3706f change test to local.sh approach 2026-06-24 18:31:22 +02:00
Alejandro Roman 114e2338fc tunr test to locally run 2026-06-24 18:31:22 +02:00
Alejandro Roman dc26196ec6 remove helper log to fins issue 2026-06-24 18:31:21 +02:00
Alejandro Roman 18772ba39f add outputs to find recurrent issue 2026-06-24 18:31:20 +02:00
Alejandro Roman 4663dc4fd8 clean long comments 2026-06-24 18:31:20 +02:00
Alejandro Roman 66c7395dcf add retries to avoid hard fail for apt random network fails 2026-06-24 18:31:19 +02:00
Alejandro Roman bbb694753d remove redundant if for Dind 2026-06-24 18:31:19 +02:00
Alejandro Roman 2954cbf424 fix(svc-runner): remove cache to simulate real CI behaviour 2026-06-24 18:31:16 +02:00
Alejandro Roman 5ea6a7ebdd fix(svc-runner): remove leftovers to avoid conflcots, test are passing but gets stuck 2026-06-24 18:31:16 +02:00
Alejandro Roman e071a8aaeb fix(svc-runner): fix playwrit test issues in svc runenr continaner net 2026-06-24 18:31:16 +02:00
Alejandro Roman acef1f7ab6 fix(svc-runner): fix contamination issue 2026-06-24 18:31:15 +02:00
Alejandro Roman 757cb424ee fix(svc-runner): fix docker wrong ip 2026-06-24 18:31:15 +02:00
Alejandro Roman 3e192ee49c fix(svc-runner): fix apt cache issues in Dind 2026-06-24 18:31:13 +02:00
Alejandro Roman 8ede60067f fix(svc-runner): add outlog to find error more deep 2026-06-24 18:31:13 +02:00
Alejandro Roman 843de8152b fix(svc-runner): add outlog to find error 2026-06-24 18:31:13 +02:00
Alejandro Roman 64789754dc fix(svc-runner): change MTU to discard issue, log is not clear 2026-06-24 18:31:12 +02:00
Alejandro Roman 613798ba39 fix(svc-runner): fix collision net issue 2026-06-24 18:31:11 +02:00
Alejandro Roman eabd37e023 add Dnid option in runner testing 2026-06-24 18:31:10 +02:00
Alejandro Roman 39ad3dc65e refactor test.sh and last comments 2026-06-24 18:31:10 +02:00