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