Commit Graph
14682 Commits
Author SHA1 Message Date
evangelostsak d801fa05b7 test(svc-net-wireguard): let deploy install docker engine, not bootstrap
make install ships only the docker CLI, not the engine, so the manual
`dockerd` start in 01_bootstrap failed with `dockerd: not found`. The
deploy installs + starts the engine itself via sys-svc-container
(DinD-aware), so bootstrap now just boots nodes + make install.
2026-07-09 13:47:46 +02:00
evangelostsak c1523d9044 test(svc-net-wireguard): surface dockerd startup failure + use vfs storage
make install now succeeds; the inner dockerd would not come up. Start it with --storage-driver=vfs (nested-friendly) and dump /tmp/dockerd.log on failure so the real cause is visible in CI.
2026-07-09 13:47:46 +02:00
evangelostsak ba82180033 test(svc-net-wireguard): install bootstrap prerequisites before make install
Raw debian/manjaro/centos base images have no make/git/python, so 'make install' failed with 'make: not found'. Install per-distro prerequisites first (apt/pacman/dnf).
2026-07-09 13:47:46 +02:00
evangelostsak 5eee13bb5f test(svc-net-wireguard): fail hard, never hang the e2e harness
Wrap make install / inventory provision / deploy dedicated in timeouts with stdin from /dev/null and non-interactive env, and cap the connectivity check at 180s. A stuck step now fails the harness fast instead of hanging the CI job.
2026-07-09 13:47:46 +02:00
evangelostsak 2f4ea68d14 test(svc-net-wireguard): rewrite e2e as deploy-driven full mesh
Replaces the linuxserver-image harness with a deploy-driven one: 01_bootstrap (6 empty containers + make install + DinD), 02_registration (per-host dedicated inventory via 'inventory provision' + full-mesh wg0.conf), 03_handshake ('deploy dedicated --id svc-net-wireguard' per host + all-pairs check). Adds the role's inventory-driven config path (mounts a per-host wg0.conf). NAT-flavor coverage follows once the mesh is green.
2026-07-09 13:47:46 +02:00
evangelostsak 3f89bf19b0 docs(026): concrete deploy-driven full-mesh harness design + exact CLI commands
Per empty container: make install -> 'inventory provision --host <h> --include svc-net-wireguard' -> render full-mesh wg0.conf into its inventory -> 'deploy dedicated <inv> --id svc-net-wireguard' -> keep the all-pairs connectivity check. Everyone-to-everyone. Adds the role's inventory-driven config path.
2026-07-09 13:47:46 +02:00
evangelostsak b461f9b57e docs(026): add Revision 2 plan from PR #323 review
Captures Kevin's 6-point feedback: deploy-driven e2e (3 debian servers + Manjaro/Debian/CentOS workstations via dedicated inventories), flavor model, central subnet, MTU auto-gen, NAT-on-host, beta lifecycle, phase-named scripts. Supersedes the v1 hand-rolled-harness ACs.
2026-07-09 13:47:46 +02:00
evangelostsak e242a28876 feat(svc-net-wireguard): flavor model, central subnet, NAT-on-host, beta lifecycle
Replaces mode+nat with a flavor list [server|client|nat]; declares the WireGuard internal subnet in group_vars/all/08_networks.yml; makes the masquerade task idempotent and applied on the deployed host (drops the DOCKER_IN_CONTAINER gate); bumps svc-net-wireguard and test-e2e-cli to lifecycle beta. (Revision 2 of req 026, PR #323 review.)
2026-07-09 13:47:46 +02:00
evangelostsak 48e3f6536d docs(026): cross-link the implementing PR and mark nat.sh CI-proven
Adds the infinito-nexus/core#323 cross-link and records nat.sh as proven in the fork CI run. The PR-cross-link AC stays open as the merge-time close-out (a fully-checked requirement is archive-ready per the completeness lint).
2026-07-09 13:47:46 +02:00
evangelostsak b97d1a5fc6 fix(svc-net-wireguard): let Docker auto-assign the NAT gateway upstream IP
Pinning the gateway to 10.30.30.1 collided with the docker-reserved subnet gateway address (Address already in use). The source-based masquerade does not need a fixed IP, so let docker assign it.
2026-07-09 13:47:46 +02:00
evangelostsak 865b4cb7c2 docs(026): tick client-mode + NAT criteria (validated by nat.sh)
Client mode (MTU 1400) and the NAT masquerade rules are now covered by the nat.sh e2e stage. Documents how NAT is tested and that the host-level task stays container-gated. Awaiting fork-CI confirmation of nat.sh.
2026-07-09 13:47:46 +02:00
evangelostsak f830424d19 test(svc-net-wireguard): add client-mode + NAT masquerade e2e stage
nat.sh brings up a WireGuard client (MTU 1400) behind a masquerading gateway and verifies it reaches an upstream host only via the masquerade, plus rule present/absent assertions. Wired into test.sh after mesh.sh.
2026-07-09 13:47:46 +02:00
evangelostsak f86e693977 docs(026): tick CI-proven acceptance criteria and clarify NAT coverage
Server-mode deploy + the full DinD e2e (servers, handshakes, 6-node mesh) are now proven in the fork CI run. NAT and client mode remain unverified; documented why and how to test.
2026-07-09 13:47:46 +02:00
evangelostsak f99a0f87d9 style(svc-net-wireguard): trim verbose comments from harness and vars 2026-07-09 13:47:45 +02:00
evangelostsak 19a05af4eb docs(test-e2e-cli): add role README and co-author
Add a convention-conformant README and credit Evangelos Tsakoudis alongside Alejandro Roman Ibanez in galaxy_info.author.
2026-07-09 13:47:45 +02:00
evangelostsak bb04818026 fix(svc-net-wireguard): use /tmp/wg for mesh keys/conf instead of /etc/wireguard
On the linuxserver Alpine image /etc/wireguard is a dangling symlink when the s6 init is bypassed (--entrypoint sleep), so key generation failed. Use a plain /tmp/wg workdir and 'wg-quick up /tmp/wg/wg0.conf' on every node.
2026-07-09 13:47:45 +02:00
evangelostsak b35545fc24 fix(svc-net-wireguard): install ping via apk on the Alpine server mesh nodes
linuxserver/wireguard is Alpine-based; the server-kind install used apt-get and exited 127. Use apk (iputils-ping, falling back to iputils).
2026-07-09 13:47:45 +02:00
evangelostsak a24d3a9b32 fix(svc-net-wireguard): make e2e peer handshake reliable in DinD
The server-generated peer config has AllowedIPs=0.0.0.0/0, which routes the endpoint through the tunnel and deadlocks the handshake, and WireGuard never initiates without traffic. external.sh now narrows AllowedIPs to the server tunnel subnet, adds PersistentKeepalive, and pings the server tunnel IP to trigger the handshake.
2026-07-09 13:47:45 +02:00
evangelostsak c6b20352dc refactor(svc-net-wireguard): move e2e harness to the test-e2e-cli contract
tests/ -> files/test/ (test.sh/local.sh/external.sh/mesh.sh) + templates/test.env.j2 (the test-e2e-cli discovery marker). README and requirement 026 updated to the adopted contract.
2026-07-09 13:47:45 +02:00
evangelostsak 768eac89c6 feat(deploy): run test-e2e-cli from server/universal/workstation stages
Drops our interim 01_constructor wiring in favour of the upstream placement across the 02_* stages, gated RUNTIME in dev/act/github.
2026-07-09 13:47:45 +02:00
evangelostsak 7165f17a14 fix(svc-net-wireguard): drop host port publish from e2e server stack
The deployed role already binds the host WireGuard port; the e2e servers are reached by container name over the compose network, so publishing host ports only caused a 'port is already allocated' collision.
2026-07-09 13:47:45 +02:00
evangelostsak 50f39f918b fix(svc-net-wireguard): make e2e harness work under the deploy wrappers
local.sh used docker-style 'compose -f … -p …'; the repo compose wrapper takes --chdir/--project. e2e.sh now disables CA injection so 'container run' stays a plain passthrough (the CA path drops --device/--sysctl).
2026-07-09 13:47:45 +02:00
evangelostsak 1f6fe72288 chore(svc-net-wireguard): set role author to Evangelos Tsakoudis 2026-07-09 13:47:45 +02:00
evangelostsak 91000d2243 docs(svc-net-wireguard): document automatic CI e2e-cli discovery 2026-07-09 13:47:45 +02:00
evangelostsak abba51c805 feat(deploy): run test-e2e-cli harnesses post-deploy from constructor
Gated RUNTIME in dev/act/github, mirroring the test-e2e-playwright invocation.
2026-07-09 13:47:45 +02:00
evangelostsak 8f13d4e964 fix(svc-net-wireguard): move subnet to 192.168.205.0/24
192.168.204.0/24 now collides with web-app-seaweedfs from upstream.
2026-07-09 13:47:45 +02:00
evangelostsak e706170a0b refactor(svc-net-wireguard): remove legacy core, plain, and firewalled roles
Superseded by the unified Docker-based svc-net-wireguard role.
2026-07-09 13:47:45 +02:00
evangelostsak 77a258db75 chore(ansible-lint): ignore templated-include load-failure for svc-net-wireguard 2026-07-09 13:47:45 +02:00
evangelostsak ffffaf73a1 docs(svc-net-wireguard): add role README and Administration 2026-07-09 13:47:45 +02:00
evangelostsak b3842a92d3 test(svc-net-wireguard): add DinD server and full-mesh e2e harness 2026-07-09 13:47:45 +02:00
evangelostsak 5679326bb4 feat(svc-net-wireguard): add mode dispatch tasks and compose templates 2026-07-09 13:47:45 +02:00
evangelostsak 3cd7a8b69f feat(svc-net-wireguard): add Docker role meta and vars 2026-07-09 13:47:45 +02:00
evangelostsak 389eceaa1a docs(requirements): add 026 svc-net-wireguard requirement 2026-07-09 13:47:45 +02:00
Alejandro Roman 444b3caf4e Merge remote-tracking branch 'upstream/main' into feature/role-stalwart-mail 2026-07-09 10:20:58 +02:00
Alejandro Roman 1b547ccac0 fix(stalwart): pin image/webui versions and defer OIDC restart until issuer is up 2026-07-09 10:01:34 +02:00
kevinveenbirkenbach bbe110b775 Merge pull request #399 from infinito-nexus/dependabot/github_actions/actions/upload-artifact-7.0.1
chore(deps): bump actions/upload-artifact from 4.6.1 to 7.0.1
2026-07-09 08:54:15 +02:00
kevinveenbirkenbach 311553a9c2 Merge pull request #400 from infinito-nexus/dependabot/github_actions/actions/checkout-7.0.0
chore(deps): bump actions/checkout from 4.2.2 to 7.0.0
2026-07-09 08:53:46 +02:00
kevinveenbirkenbach 2bf65aba59 Merge pull request #401 from infinito-nexus/dependabot/github_actions/github/codeql-action-4
chore(deps): bump github/codeql-action from 3 to 4
2026-07-09 08:52:38 +02:00
kevinveenbirkenbach c8514ed0db Merge pull request #402 from infinito-nexus/dependabot/github_actions/ossf/scorecard-action-2.4.3
chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.3
2026-07-09 08:52:12 +02:00
dependabot[bot] 071fed6dc8 chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.3
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.1 to 2.4.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/f49aabe0b5af0936a0987cfb85d86b75731b0186...4eaacf0543bb3f2c246792bd56e8cdeffafb205a)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-09 02:07:48 +00:00
dependabot[bot] 0673260587 chore(deps): bump github/codeql-action from 3 to 4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-09 02:07:44 +00:00
dependabot[bot] bdd920fd85 chore(deps): bump actions/checkout from 4.2.2 to 7.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4.2.2...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-09 02:07:38 +00:00
dependabot[bot] a38de26708 chore(deps): bump actions/upload-artifact from 4.6.1 to 7.0.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.1 to 7.0.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.6.1...v7.0.1)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-09 02:07:22 +00:00
kevinveenbirkenbach f52d750085 Merge branch 'main' into feature/swarm-nfs 2026-07-09 02:20:03 +02:00
kevinveenbirkenbachandClaude Opus 4.8 00829757a0 feat(checkmk): pin to swarm manager so its node-local OMD volume survives
The checkmk OMD site cannot live on NFS (fcntl locks return EBADF) and must stay node-local, but an unpinned single-replica service loses that data on a swarm reschedule. Pin checkmk to the manager so the task never leaves the node holding its data, and teach the nfs-false-data-loss lint to accept a manager-pinned role as justification (dropping checkmk's now-redundant per-volume opt-out).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 02:19:09 +02:00
kevinveenbirkenbachandClaude Opus 4.8 09a131d007 refactor(placement): rename meta key default_placement to placement
Rename the meta/services.yml key across all roles, the roles_with_default_placement lookup (now roles_with_placement), the get_role_default_placement / iter_roles_with_default_placement helpers, and every consumer (swarm closure, compose_volumes filter, nfs_prep, container deploy template, constructor stage, extend_inventory) plus their tests and docs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 02:19:08 +02:00
kevinveenbirkenbachandClaude Opus 4.8 71edd68731 style(readme): use asterisk bullets in support section
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 01:33:19 +02:00
kevinveenbirkenbachandClaude Opus 4.8 7ea01b41e6 docs(readme): drop support-section intro and thank-you lines
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 01:33:18 +02:00
kevinveenbirkenbach de66149a05 Merge branch 'main' into feature/swarm-nfs
# Conflicts:
#	README.md
2026-07-09 01:33:00 +02:00
kevinveenbirkenbachandClaude Opus 4.8 cf2e9b9ba7 style(readme): use asterisk bullets in support section
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 01:31:08 +02:00