Commit Graph

  • 296ec5ece6 Merge pull request 'Genesis lets the controller ask any module's tool' (#40) from fix/genesis-lets-the-controller-ask into main main mesh-admin 2026-09-28 02:21:24 +00:00
  • 45b9a507a1 Genesis lets the controller ask any module's tool fix/genesis-lets-the-controller-ask jschoubben 2026-09-28 04:21:22 +02:00
  • 5c410aaf54 Merge pull request 'One bus: the AMQP transport is gone from the host' (#39) from feat/one-bus into main mesh-admin 2026-09-28 01:54:23 +00:00
  • 2478b5f127 One bus: the AMQP transport is gone from the host feat/one-bus jschoubben 2026-09-28 03:54:22 +02:00
  • c82e933268 Merge pull request 'Genesis: the first user list lets the controller hear the forge's merges' (#38) from fix/genesis-follows-the-forge into main mesh-admin 2026-09-28 01:13:18 +00:00
  • e212da6bd2 Genesis: the first user list lets the controller hear the forge's merges fix/genesis-follows-the-forge jschoubben 2026-09-28 03:13:16 +02:00
  • 673912ccdc Merge pull request 'A host adopts a delivered membership at start, not only after a declaration' (#37) from feat/a-host-adopts-a-membership-at-start into main mesh-admin 2026-09-28 00:40:27 +00:00
  • 68a193d6f0 A host adopts a delivered membership at start, not only after a declaration feat/a-host-adopts-a-membership-at-start jschoubben 2026-09-28 02:21:56 +02:00
  • 4fba884d47 Merge pull request 'Genesis: the first user list lets the controller hear its consumers, and the account has JetStream' (#36) from fix/genesis-accounts-hear-and-have-jetstream into main jschoubben 2026-09-27 23:47:41 +00:00
  • 15f0dabf32 Genesis: the first user list lets the controller hear its consumers, and the account has JetStream fix/genesis-accounts-hear-and-have-jetstream jschoubben 2026-09-28 01:46:14 +02:00
  • 4ef41ad5a0 Merge pull request 'A host logs in as node.<name> and hears answers on its own inbox' (#35) from fix/a-host-uses-its-own-inbox into main jschoubben 2026-09-27 23:18:30 +00:00
  • d749de989c A host hears the server's answers on its own inbox fix/a-host-uses-its-own-inbox jschoubben 2026-09-28 01:16:23 +02:00
  • 14e64844df A host logs in to the new bus as node.<name> fix/a-host-logs-in-as-its-node-user jschoubben 2026-09-28 01:13:52 +02:00
  • d82fc9a121 Merge pull request 'A machine moves to the bus its declaration tells it to' (#34) from feat/a-machine-moves-to-the-bus-it-is-told into main jschoubben 2026-09-27 22:09:08 +00:00
  • 9fd3762e93 A machine moves to the bus its declaration tells it to feat/a-machine-moves-to-the-bus-it-is-told jschoubben 2026-09-28 00:08:44 +02:00
  • 587b8aa220 Merge pull request 'A host reaches either bus, and a genesis template that raises the mesh on the new one' (#33) from feat/nats-genesis into main jschoubben 2026-09-27 17:36:48 +00:00
  • 48e2ff2de5 Merge remote-tracking branch 'origin/main' into feat/nats-genesis feat/nats-genesis jschoubben 2026-09-27 18:38:45 +02:00
  • 6a3435629e A foundation template that raises the mesh on the bus being built jschoubben 2026-09-27 16:39:32 +02:00
  • 9072f60a30 Enrolment behind a seam, with both transports jschoubben 2026-09-27 01:31:46 +02:00
  • 6e208f7b3e The host's inbound behind a seam, with both transports jschoubben 2026-09-27 01:25:01 +02:00
  • 54f6eb661a Merge pull request 'A taken tunnel's found configuration is retired once the take is proven (hq ADR 0119)' (#32) from feat/a-taken-tunnels-predecessor-is-retired into main jschoubben 2026-09-26 22:59:51 +00:00
  • 646be4fdf4 Merge pull request 'Undeclaring gives a unit back the state it was found in, and removes a process the mesh made (hq ADR 0118)' (#31) from feat/undeclaring-leaves-the-machines-units into main jschoubben 2026-09-26 22:59:30 +00:00
  • e688b3b816 Merge pull request 'A file written into a marked block, so a shared hosts file keeps every line that is not the mesh's (hq 128)' (#30) from feat/a-file-written-into-a-marked-block into main jschoubben 2026-09-26 22:59:21 +00:00
  • 50776b8613 review: a retired configuration that comes back is retired again on its first original, and only wg-quick's own file is ever removed (hq ADR 0119) jochen 2026-09-27 00:55:50 +02:00
  • b462f461c6 A taken tunnel's found configuration is retired once the take is proven (hq ADR 0119) jochen 2026-09-27 00:47:57 +02:00
  • 23a4436499 review: a unit whose file the mesh wrote is stopped when undeclared, and what was found survives a failed first apply (hq ADR 0118) jochen 2026-09-27 00:41:02 +02:00
  • 08c0f40ff0 review: refuse a process named ".", ".." or with a leading dash, so removing one cannot delete the mesh's own directory (hq ADR 0118) jochen 2026-09-27 00:41:02 +02:00
  • 3112c881e4 Undeclaring gives a unit back the state it was found in, and removes a process the mesh made (hq ADR 0118, issue 130) jochen 2026-09-27 00:21:25 +02:00
  • 06aaac0820 A service may omit its state, so unassigning an uplink module never stops the machine's network manager (hq ADR 0117) jochen 2026-09-27 00:11:58 +02:00
  • fdc768c476 review: rebuild a file the mesh once wrote whole, keep links, give back a missing line end, and release a hold only after the write (hq issue 128) jochen 2026-09-27 00:09:34 +02:00
  • 25449a31c3 The host's outbound behind a seam, with both transports jschoubben 2026-09-27 00:01:42 +02:00
  • 1cb895346d Write into a marked block of a text file instead of over it, so a shared hosts file keeps every line that is not the mesh's (hq issue 128) jochen 2026-09-26 23:51:36 +02:00
  • 3ae999497f Format control_test.go so the gate's fmt step passes on main jochen 2026-09-26 23:51:36 +02:00
  • 32d7234637 Merge pull request 'A host accepts an explicitly-empty declaration (hq 127)' (#29) from feat/an-explicit-empty-declaration into main jschoubben 2026-09-26 21:39:56 +00:00
  • 2722e7b36e A host accepts an explicitly-empty declaration (hq 127) jschoubben 2026-09-26 23:39:32 +02:00
  • 808e93a477 Merge pull request 'A found tunnel carries its MTU to the mesh' (#28) from feat/a-taken-tunnel-carries-its-mtu into main jschoubben 2026-09-26 20:40:09 +00:00
  • 8e2a1e762d A found tunnel carries its MTU to the mesh jschoubben 2026-09-26 22:39:54 +02:00
  • 5dbc8e5c3c Merge pull request 'the spec names the resolver and the address' (#27) from fix/the-spec-names-the-resolver-and-address into main jschoubben 2026-09-25 21:51:42 +00:00
  • 260bf0b752 the spec names the resolver and the address jschoubben 2026-09-25 23:51:30 +02:00
  • 93caf26aed Merge pull request 'a container may name its resolvers and its own address' (#26) from feat/a-container-may-name-its-resolver-and-its-address into main jschoubben 2026-09-25 21:48:44 +00:00
  • 3ac765db65 a container may name its resolvers and its own address jschoubben 2026-09-25 23:48:31 +02:00
  • 7e245dae92 Merge pull request 'inspect by kind, not the ambiguous bare form — a same-named network stops a container from ever being found' (#25) from fix/inspect-by-kind-not-the-ambiguous-bare-form into main jschoubben 2026-09-24 18:29:44 +00:00
  • 5dd439df50 inspect by kind, not the ambiguous bare form — a same-named network stops a container from ever being found jschoubben 2026-09-24 19:50:16 +02:00
  • f68139c9d1 Merge pull request 'Take over the found tunnel: its key, its port, its peers; stop it, never flush (hq ADR 0105)' (#24) from feat/adopt-the-tunnel into main jschoubben 2026-09-23 22:38:36 +00:00
  • fc593b9dfd Stop nothing the mesh cannot replace, give the tunnel back on failure, and take it over after enrolment jschoubben 2026-09-24 00:02:08 +02:00
  • 83306b2dba Merge pull request 'Recreate a container when the content of a file it reads at creation changes (hq issue 103)' (#22) from fix/recreate-on-content-change into main jschoubben 2026-09-23 21:44:21 +00:00
  • 4840e21405 Say in the plan which file a container would be recreated for jschoubben 2026-09-23 23:42:41 +02:00
  • 982b84310e Look at what a container mounts directly, accept a pre-upgrade label, and write the genesis secret without a newline jschoubben 2026-09-23 23:37:50 +02:00
  • c60228e719 Recreate a container when the content of a file it reads at creation changes jschoubben 2026-09-23 23:12:52 +02:00
  • 977df39e0d Merge pull request 'Refuse a declaration for the other mode, or older than the mesh's last, and preview before applying (hq issue 104)' (#23) from fix/reconcile-refuses-stale into main jschoubben 2026-09-23 21:38:33 +00:00
  • f08a8ea3f7 Refuse every file once the mesh has spoken, plan the cutover as one, and let the kept declaration repair the mode jschoubben 2026-09-23 23:35:49 +02:00
  • 7283924a35 Take over the found tunnel: its key, its port, its peers; stop it, never flush jschoubben 2026-09-23 23:26:35 +02:00
  • 27c4b765b2 Refuse a declaration for the other mode, or older than the mesh's last, and say what an apply would change first jschoubben 2026-09-23 23:15:28 +02:00
  • 9176aea6c4 Merge pull request 'The packages port given at genesis is a node setting, not manifest text (hq issue 085)' (#21) from feat/packages-port into main jschoubben 2026-09-22 21:59:46 +02:00
  • 744beb6c51 A re-run does not replace the registered forge with whatever checkout it was given jschoubben 2026-09-22 21:56:42 +02:00
  • c4ce57997e The packages port given at genesis is a module's setting, like every other jschoubben 2026-09-22 21:40:02 +02:00
  • 0db1fbdb3b Merge pull request 'Adoption mode: a node in use is adopted before it is converged (hq ADR 0100–0103)' (#20) from feat/adoption-mode into main jschoubben 2026-09-22 21:01:46 +02:00
  • 6dce63b534 Say plainly where the raised package registry runs, and why an action outside a container still runs jschoubben 2026-09-22 20:01:26 +02:00
  • c03a31cec5 Count only a record of making something at a path as the mesh's, not an access record (hq ADR 0103) jschoubben 2026-09-22 20:01:14 +02:00
  • 01e8affa89 Count an unasked report as said only once the broker has taken it (hq ADR 0100) jschoubben 2026-09-22 20:00:59 +02:00
  • b4c21b4f67 Read a machine's iptables rules when it has no nft, instead of calling it unfiltered (hq ADR 0100) jschoubben 2026-09-22 19:59:22 +02:00
  • c7ff0b9026 Refuse an endpoint whose port is not the one the private network's hub binds (hq ADR 0100) jschoubben 2026-09-22 19:58:37 +02:00
  • 04665d36c8 Exempt only the daemons a fresh machine was measured to run from counting as in use (hq ADR 0101) jschoubben 2026-09-22 19:57:52 +02:00
  • 7beb752be0 Take a key or list member the host may have written itself as the mesh's, so undeclaring gives the file back (hq ADR 0102) jschoubben 2026-09-22 19:57:15 +02:00
  • 0bd22e50f2 Apply one declaration at a time, so the link and the reconcile do not lose each other's record jschoubben 2026-09-22 19:56:05 +02:00
  • 9839006d48 Retire the found firewall only once the mesh's own filter is loaded on the machine (hq ADR 0100) jschoubben 2026-09-22 19:54:43 +02:00
  • 5f126021b7 Keep the originals the carried bundle writes over beside the node's state (hq ADR 0100) jschoubben 2026-09-22 19:53:50 +02:00
  • eb2f4fcf53 Keep an original by its path and its content, so a second original at one path is not discarded (hq ADR 0100) jschoubben 2026-09-22 19:53:15 +02:00
  • 232ed74940 gofmt the ufw rule's direction field jschoubben 2026-09-22 19:52:40 +02:00
  • 40e8ea9fda Hold a unit an administrator installed whatever its state, and a packaged unit only when the machine uses it (hq ADR 0103) jschoubben 2026-09-22 19:52:37 +02:00
  • d3f2595968 Read a ufw rule's direction: an outgoing rule answers no opening, and incoming is the default ufw merges on (hq ADR 0103) jschoubben 2026-09-22 19:51:35 +02:00
  • dc861fb4a8 Do not arm a scheduled step of a module held as found on an adopted node (hq ADR 0103) jschoubben 2026-09-22 19:48:05 +02:00
  • da008460ac Fail a resource when the container runtime cannot answer, instead of reading silence as nothing there (hq ADR 0100) jschoubben 2026-09-22 19:46:50 +02:00
  • 0ea646b384 Keep the derived filter in force when a guard resource failed on the way back to adopted (hq ADR 0103) jschoubben 2026-09-22 19:45:33 +02:00
  • 60bb3d895c Count a unit as found only when the machine runs it or starts it at boot, so a packaged unit nothing ran is not held (hq ADR 0103, found by the adoption bed) jschoubben 2026-09-22 18:47:48 +02:00
  • bde5e3461c Keep the original of any file the host writes over without a record of it, on every node, and name where (hq ADR 0100) jschoubben 2026-09-22 18:35:03 +02:00
  • 272e1a65ea Reload the guard for a changed table and restart it only for a changed unit, as the controller declares it (hq ADR 0103) jschoubben 2026-09-22 18:33:57 +02:00
  • b4f3eaf11b Release a whole-file hold once the file is declared written into (hq ADR 0102) jschoubben 2026-09-22 18:33:45 +02:00
  • bd3fd17ad8 Do not count the machine's own plumbing mounted into a container as found data (hq ADR 0103) jschoubben 2026-09-22 18:33:29 +02:00
  • a4e4632077 gofmt the store's firewall record jschoubben 2026-09-22 18:33:13 +02:00
  • 444ad8f3cf Record the forward policies before disabling ufw, so a retried retirement restores them (hq ADR 0100) jschoubben 2026-09-22 18:33:09 +02:00
  • aef4993d10 Hold an archive, a process's unit and a user found on an adopted node for an untaken module (hq ADR 0103) jschoubben 2026-09-22 18:32:20 +02:00
  • 491e04fb8f Load the guard before removing the derived filter when a node returns to adopted, and defer the adoption's orphans only on the flip (hq ADR 0103) jschoubben 2026-09-22 18:30:13 +02:00
  • b531c47486 Refuse an opening ufw would merge into a found rule that does other than a plain allow, and read log types in either place (hq ADR 0103) jschoubben 2026-09-22 18:29:06 +02:00
  • facf6af46a Add the mesh's members to a list found in a file written into, and take back only those (hq ADR 0102) jschoubben 2026-09-22 18:27:51 +02:00
  • 48a8f4cf9d Point the builder's package binding at the port given with --packages-port (hq ADR 0100) jschoubben 2026-09-22 18:16:00 +02:00
  • 4a095df2f9 Let go of a hold whose resource is no longer declared, touching nothing on disk (hq ADR 0100) jschoubben 2026-09-22 18:14:37 +02:00
  • 824cb60cbb Hold a found directory, a found service's unit, a container that would mount found data, and a step run in a held container on an adopted node (hq ADR 0103) jschoubben 2026-09-22 18:14:37 +02:00
  • 35ecf68393 Accept --registry as a host alone again, completing it with the registry's port (hq ADR 0100) jschoubben 2026-09-22 18:08:50 +02:00
  • d59d232656 Let a re-run of genesis find the package registry it raised itself under its own name (hq ADR 0100) jschoubben 2026-09-22 18:08:20 +02:00
  • 078e84c681 Read an adopted or converged node's mode from its state on a re-run of genesis, and refuse a flag that disagrees (hq ADR 0103) jschoubben 2026-09-22 18:08:02 +02:00
  • 52e139d96f Add no opening a found ufw rule already answers, since ufw takes rules differing only in comment for one, as captured on a lab machine (hq ADR 0103) jschoubben 2026-09-22 18:06:47 +02:00
  • da65f84c45 Read fail2ban's bans as no firewall, and an iptables-nft reject as a refusal, from rulesets captured on a lab machine (hq ADR 0100) jschoubben 2026-09-22 18:04:48 +02:00
  • 8e2f75454d Put back the forward policy ufw disable opens when the found firewall is retired, as measured on a lab machine (hq ADR 0100) jschoubben 2026-09-22 18:03:30 +02:00
  • 588ab71d14 Remove an adopted node's guard and openings last on the flip, and keep them if anything failed (hq ADR 0103) jschoubben 2026-09-22 18:02:46 +02:00
  • 9033e3da98 Retire the found firewall only on a converged declaration from the mesh, never on a carried apply (hq ADR 0100) jschoubben 2026-09-22 18:01:49 +02:00
  • c989b57439 Guard the broker's plaintext port too at an adopted genesis: the filter admits it from the private network only (hq ADR 0103) jschoubben 2026-09-22 18:01:14 +02:00
  • 14b3ffbd40 Guard only packets addressed to this machine, and load the guard before the network and stop it only at shutdown (hq ADR 0103) jschoubben 2026-09-22 18:00:54 +02:00
  • 1e0c6a3516 Publish a reconcile report when what is reachable changed, so the controller's converge preview stays fresh (hq ADR 0100) jschoubben 2026-09-22 18:00:03 +02:00
  • 0f126d137c Write into a file the machine shares instead of over it, and reload a service that re-reads its configuration instead of restarting it (hq ADR 0102) jschoubben 2026-09-22 17:48:57 +02:00