Commit Graph
100 Commits
Author SHA1 Message Date
evangelostsak c71f5bc196 Merge remote-tracking branch 'upstream/main' into agent/i8-release-article 2026-10-21 11:15:15 +02:00
evangelostsak 3981dbe178 feat(skills): write release posts for readers outside the project 2026-10-20 13:58:43 +02:00
evangelostsak 57a4d654db docs(agents): keep release social posts non-technical 2026-10-20 13:58:43 +02:00
evangelostsak bd8901c4d7 feat(skills): describe technical social posts in i8-release-article 2026-10-19 22:42:06 +02:00
evangelostsak b6ebc32dbb docs(agents): let release social posts be technical 2026-10-19 22:41:35 +02:00
evangelostsak 5c8b6318e6 docs(cheatsheet): mention social posts for i8-release-article 2026-10-19 20:02:50 +02:00
evangelostsak 8211119e47 feat(skills): announce releases on Mastodon and LinkedIn 2026-10-19 20:02:50 +02:00
evangelostsak 989d53c7e6 docs(agents): add social posts to the release article procedure 2026-10-19 20:02:49 +02:00
evangelostsak ebf746a60a Merge remote-tracking branch 'upstream/main' into agent/i8-release-article 2026-10-19 19:56:17 +02:00
evangelostsak 072336e0ed docs(cheatsheet): list i8-release-article 2026-10-19 15:45:16 +02:00
evangelostsak d07f1f22d9 feat(skills): add the i8-release-article skill 2026-10-19 15:45:16 +02:00
evangelostsak 88c535db4c feat(skills): add the release banner template 2026-10-19 15:45:16 +02:00
evangelostsak da8b4e279f feat(skills): add the release article template 2026-10-19 15:45:16 +02:00
evangelostsak b750d361c8 docs(agents): add the release article procedure 2026-10-19 15:45:15 +02:00
evangelostsak c2eb54c39c refactor(wireguard): reduce test.sh to the flow and its expectations 2026-10-18 20:36:26 +02:00
evangelostsak fab8acbe91 test(wireguard): move the assertions into lib/checks.sh 2026-10-18 20:36:25 +02:00
evangelostsak 8da00a7a26 test(wireguard): move the mesh probes into lib/probes.sh 2026-10-18 20:36:25 +02:00
evangelostsak f026439ef1 test(wireguard): move the test hosts' lifecycle into lib/hosts.sh 2026-10-18 20:36:25 +02:00
evangelostsak 70ffeeb09b test(wireguard): read mesh addresses and SSH options for the CLI test 2026-10-18 20:36:25 +02:00
evangelostsak 36d0806afc test(wireguard): write the CLI test's inventory from the layout 2026-10-18 20:36:25 +02:00
evangelostsak a21fa60512 test(wireguard): declare the CLI test's meshes and memberships as data 2026-10-18 20:36:25 +02:00
evangelostsak ec9695ee88 test(wireguard): drop HOST_IMAGE from the CLI test env 2026-10-18 13:56:07 +02:00
evangelostsak fc4a2da70e test(wireguard): start and remove the test hosts through compose 2026-10-18 13:56:07 +02:00
evangelostsak 5bcbc14545 test(wireguard): declare the CLI test's three hosts in a compose file 2026-10-18 13:56:07 +02:00
evangelostsak 25d1c32986 refactor(playbooks): run the mesh play on the svc-net-wireguard group only 2026-10-18 13:56:06 +02:00
evangelostsak 96fa1f43aa refactor(wireguard): leave group membership to the callers 2026-10-18 13:56:06 +02:00
evangelostsak 9eed8525e8 fix(wireguard): enable the service everywhere and drop the test image entry 2026-10-18 13:56:06 +02:00
evangelostsak 7a1c6651a5 docs(tests): drop the EPEL mirror comment
The probe reads one host either way. The mirror history belongs to the
commit that moved it.
2026-10-18 01:24:59 +02:00
evangelostsak d8613a842c fix(tests): read EPEL availability from mdapi instead of a mirror listing
The probe scraped a directory listing under dl.fedoraproject.org, which
redirects to whichever mirror is near the caller. A mirror that does not
carry the directory answers 404, and 404 is not retried, so every EPEL
package came back uncheckable and the suite failed on runners whose nearest
mirror is incomplete -- twice in a row, while the same URLs answer 200 from
elsewhere.

mdapi already backs the Fedora probe and serves the epel10 branch from a
single host. Routing EPEL through it removes the mirror roulette and keeps
the verdict sharp: a name it does not know is still reported absent rather
than unknown.

Checked against the live branch: ShellCheck and keepassxc resolve, an
invented name reports absent, and the suite passes.
2026-10-18 01:24:59 +02:00
evangelostsak a6bf8f6d49 chore(swarm-test): stop forwarding INFINITO_SWARM_TRANSPORT_BENCH 2026-10-18 01:01:10 +02:00
evangelostsak 4a100cade8 chore(ci): stop handing the swarm round INFINITO_SWARM_TRANSPORT_BENCH 2026-10-18 01:01:10 +02:00
evangelostsak bc4db9fb9f docs(ci): drop the INFINITO_SWARM_TRANSPORT_BENCH variable 2026-10-18 01:01:10 +02:00
evangelostsak 97afaed757 chore(env): drop INFINITO_SWARM_TRANSPORT_BENCH 2026-10-18 01:01:10 +02:00
evangelostsak 4a112c1295 chore(env): stop passing INFINITO_SWARM_TRANSPORT_BENCH through 2026-10-18 01:01:10 +02:00
evangelostsak 3fd827508f chore(swarm-test): delete the transport bench playbook 2026-10-18 01:01:10 +02:00
evangelostsak 1e080c1a2e refactor(swarm-test): drop the transport bench from the mesh prologue 2026-10-18 01:01:10 +02:00
evangelostsak 5f945c2991 refactor(swarm-test): run the mesh playbooks from playbooks/ and drop the transport bench 2026-10-18 01:01:10 +02:00
evangelostsak 24a07325f8 test(wireguard): run the mesh playbook from playbooks/ 2026-10-18 01:01:09 +02:00
evangelostsak 4096c6e553 refactor(playbooks): move and rename the swarm lab's passwordless sudo playbook 2026-10-18 01:01:09 +02:00
evangelostsak 5195326ba7 refactor(playbooks): move the mesh playbook into playbooks/ 2026-10-18 01:01:09 +02:00
evangelostsak 8da87a524f feat(playbooks): load the root group_vars for playbooks under playbooks/ 2026-10-18 01:01:09 +02:00
evangelostsak 01ef83217b docs(readme): list WireGuard as beta with its current description 2026-10-18 01:01:09 +02:00
evangelostsak bdfb025229 refactor(user-administrator): drop the static sudoers file 2026-10-18 01:01:09 +02:00
evangelostsak 7250442c38 refactor(user-administrator): use the administrator name constant 2026-10-18 01:01:09 +02:00
evangelostsak a8bf405fa3 refactor(user-administrator): render the sudoers drop-in from the name 2026-10-18 01:01:09 +02:00
evangelostsak 7b27a46556 refactor(user-administrator): name the administrator once 2026-10-18 01:01:09 +02:00
evangelostsak ea94695ec9 refactor(constructor): leave the mesh administrator to svc-net-wireguard 2026-10-18 01:01:08 +02:00
evangelostsak aea4373486 refactor(wireguard): create the administrator the mesh transport logs in as 2026-10-18 01:01:08 +02:00
evangelostsak 77e6588b36 refactor(wireguard): gate the core and the skip on the named compose case 2026-10-18 01:01:08 +02:00
evangelostsak a009f64b15 refactor(wireguard): name the compose host the mesh CLI gave no mesh 2026-10-18 01:01:08 +02:00
evangelostsak ebb6561972 test(wireguard): read the host image from the role's test service 2026-10-18 01:01:08 +02:00
evangelostsak 5ccf9551da feat(wireguard): declare the CLI test's host image and move the role to beta 2026-10-18 01:01:08 +02:00
evangelostsak 0c9ad653f7 Merge remote-tracking branch 'upstream/main' into feature/svc-net-wireguard 2026-10-17 22:19:57 +02:00
evangelostsak e62ed8c56f Merge remote-tracking branch 'upstream/main' into feature/svc-net-wireguard 2026-10-17 09:34:00 +02:00
evangelostsak b3a9e140af test(ci): the compose title carries the direct arm glyph 2026-10-17 00:03:18 +02:00
evangelostsak 99fcca4d1b feat(ci): compose titles carry the direct arm glyph
A compose row never joins a WireGuard mesh, so its title shows 🛣️ like a
direct swarm row. The vpn axis, the planner and the deploy are unchanged.
2026-10-17 00:03:18 +02:00
evangelostsak 6e28039782 docs(wireguard): the role acts on every host in its group 2026-10-16 21:26:17 +02:00
evangelostsak b0c71d4428 test(wireguard): the layer follows group membership 2026-10-16 21:26:17 +02:00
evangelostsak b7d709499d test(wireguard): the CLI test requires the container engine
A row that deploys only svc-net-wireguard installs no engine, and the test
builds its three hosts as inner containers. Verified on a freshly created dev
container with no engine: the role skipped the mesh-less host, the
prerequisite installed the engine, and all 20 checks passed.
2026-10-16 21:26:17 +02:00
evangelostsak 5d0e8c6ccd feat(test-e2e-cli): include the roles a CLI test declares under cli.requires
Read through the role_tests lookup like the other cli keys. CLI tests only
run in dev, act and github, so a prerequisite never reaches production.
2026-10-16 21:26:17 +02:00
evangelostsak 7ea924a346 feat(wireguard): skip a compose host the mesh CLI gave no mesh, visibly
Swarm still fails hard on a host without a mesh. A compose host in the group
without one, such as the role's own CI row, prints why and changes nothing.
2026-10-16 21:26:17 +02:00
evangelostsak e3963d9dbb feat(wireguard): run the layer on every host in the svc-net-wireguard group
Swarm resolves exactly as before: the meshed arm puts every node and the
backup host into the group, the direct arm none, and advertise_addr stays ''
there.
2026-10-16 21:26:17 +02:00
evangelostsak ec33add867 revert(env): stop passing INFINITO_COMPOSE_VPN through 2026-10-16 21:26:17 +02:00
evangelostsak 7a1b7457e0 revert(env): drop INFINITO_COMPOSE_VPN 2026-10-16 21:26:17 +02:00
evangelostsak 0f77f828e1 revert(ci): a compose row never takes the mesh 2026-10-16 21:26:17 +02:00
evangelostsak 3bc1ca91b6 revert(ci): the vpn input describes swarm rows only 2026-10-16 21:26:16 +02:00
evangelostsak e92f2f4cce revert(ci): the vpn input describes swarm rows only 2026-10-16 21:26:16 +02:00
evangelostsak c9f203b9f1 revert(ci): stop handing the compose deploy a vpn state 2026-10-16 21:26:16 +02:00
evangelostsak 6a6f2f8340 revert(ci): a compose row deploys only its app again 2026-10-16 21:26:16 +02:00
evangelostsak c1e34116fe revert(ci): drop the compose mesh pin validation tests 2026-10-16 21:26:16 +02:00
evangelostsak 9c93e32a73 revert(ci): the axis tests cover the swarm-only vpn axis again 2026-10-16 21:26:16 +02:00
evangelostsak c0cab6ac44 revert(ci): validate no compose mesh pin 2026-10-16 21:26:16 +02:00
evangelostsak 5d7327d911 revert(ci): compose titles carry no mesh glyph and take no mesh pin check 2026-10-16 21:26:16 +02:00
evangelostsak dc84a4c9ac revert(ci): the vpn axis covers swarm rows only again 2026-10-16 21:26:16 +02:00
evangelostsak 1b19fe7df3 docs(requirements): 039 test full meshes on the WireGuard role's own CI row
Compose app rows no longer spend deploy time on WireGuard. The full-mesh
test runs on svc-net-wireguard's own row, the role deploys where its group
puts it, and production keeps WireGuard for every role.
2026-10-16 21:26:16 +02:00
evangelostsak dc991f97c0 refactor: drop rationale and narration from utils/tests/swarm/write/extras.py 2026-10-16 19:10:01 +02:00
evangelostsak 9b825c7096 refactor: drop rationale and narration from utils/tests/swarm/run.py 2026-10-16 19:10:01 +02:00
evangelostsak 8323786733 refactor: drop rationale and narration from utils/tests/swarm/mesh.py 2026-10-16 19:10:01 +02:00
evangelostsak eea44f1210 refactor: drop rationale and narration from utils/tests/swarm/matrix.py 2026-10-16 19:10:01 +02:00
evangelostsak 50c500eb6d refactor: drop rationale and narration from utils/tests/swarm/extend_inventory.py 2026-10-16 19:10:01 +02:00
evangelostsak 7f5382f3c8 refactor: drop rationale and narration from utils/packages/calls.py 2026-10-16 19:10:01 +02:00
evangelostsak 327ec01bf5 refactor: drop rationale and narration from utils/networks/mesh.py 2026-10-16 19:10:01 +02:00
evangelostsak 0b1bc82d57 refactor: drop rationale and narration from utils/github/variant/vpn.py 2026-10-16 19:10:01 +02:00
evangelostsak f5b2979c45 refactor: drop rationale and narration from utils/github/variant/selection.py 2026-10-16 19:10:01 +02:00
evangelostsak 216f6ea170 refactor: drop rationale and narration from utils/github/variant/label.py 2026-10-16 19:10:01 +02:00
evangelostsak aaecbccf8c refactor: drop rationale and narration from utils/github/variant/axes.py 2026-10-16 19:10:01 +02:00
evangelostsak 779e995bf3 refactor: drop rationale and narration from tests/unit/python/utils/tests/swarm/test_write_extras.py 2026-10-16 19:10:01 +02:00
evangelostsak 2a60fd1f32 refactor: drop rationale and narration from tests/unit/python/utils/tests/swarm/test_mesh_steps.py 2026-10-16 19:10:01 +02:00
evangelostsak 2698bb7996 refactor: drop rationale and narration from tests/unit/python/utils/github/variant/test_axes.py 2026-10-16 19:10:01 +02:00
evangelostsak 010bc71ab7 refactor: drop rationale and narration from tests/unit/python/roles/web-app-n8n/files/provision/test_mcp.py 2026-10-16 19:10:01 +02:00
evangelostsak 6f24461720 refactor: drop rationale and narration from tests/unit/python/plugins/lookup/test_mesh_ranges.py 2026-10-16 19:10:01 +02:00
evangelostsak d480c2785e refactor: drop rationale and narration from tests/unit/python/plugins/lookup/test_mesh_address.py 2026-10-16 19:10:01 +02:00
evangelostsak 0c0a43adb5 refactor: drop rationale and narration from tests/unit/python/group_vars/test_swarm_advertise_addr.py 2026-10-16 19:10:01 +02:00
evangelostsak 1343f77929 refactor: drop rationale and narration from tests/unit/python/cli/administration/inventory/mesh/test_write.py 2026-10-16 19:10:01 +02:00
evangelostsak 277a2aad76 refactor: drop rationale and narration from tests/unit/python/cli/administration/inventory/mesh/test_transport.py 2026-10-16 19:10:01 +02:00
evangelostsak 7c85cedc8e refactor: drop rationale and narration from tests/unit/python/cli/administration/inventory/mesh/test_plan.py 2026-10-16 19:10:01 +02:00
evangelostsak 814fc8b336 refactor: drop rationale and narration from tests/unit/python/cli/administration/inventory/mesh/test_inventory.py 2026-10-16 19:10:01 +02:00
evangelostsak a88f69bd35 refactor: drop rationale and narration from tests/unit/python/cli/administration/inventory/mesh/test_full_mesh.py 2026-10-16 19:10:01 +02:00
evangelostsak c95e5d06c4 refactor: drop rationale and narration from tests/unit/python/cli/administration/inventory/mesh/test_cli.py 2026-10-16 19:10:01 +02:00
evangelostsak f73bd6ec5d refactor: drop rationale and narration from tests/lint/ansible/roles/meta/test_mesh_subnet_pool.py 2026-10-16 19:10:01 +02:00