The roster is the machines: each node's internal domain covers its routes (hq ADR 0191) #238
Open
jschoubben
wants to merge 2 commits from
fix/the-mesh-publishes-the-names-it-composed into main
pull from: fix/the-mesh-publishes-the-names-it-composed
merge into: :main
:main
:fix/the-mesh-publishes-the-names-it-composed
:feat/the-store-keeps-what-the-records-name
:feat/a-provider-declares-what-it-derives
:feat/a-machine-joins-through-the-tunnel
:feat/the-found-front-end-is-uninstalled
:fix/adr-0170-cited
:feat/the-firewall-seat-serves-its-verbs
:feat/one-thing-filters-a-converged-machine
:feat/a-take-is-a-comparison-the-rest
:fix/the-build-tool-rebuilds-what-stands-on-a-base
:fix/one-announcement-at-a-time
:feat/the-artifact-store-seat-is-named-for-its-scope
:fix/139-a-routes-internal-name-says-where-it-arrives
:feat/148-names-are-resolved-not-copied
:fix/a-token-is-an-account-on-the-bus
:feat/ca-trust
:fix/local-calls-are-not-filtered
:fix/this-machines-own-guests-are-on-the-private-network
:fix/an-endpoint-named-by-a-route-still-carries-its-port
:feat/an-assignment-configures-an-endpoint
:feat/a-module-names-its-endpoints
:fix/reach-names-a-route-not-a-port
:feat/an-assignment-says-how-far-an-endpoint-reaches
:feat/filter-what-arrives-from-outside
:feat/an-artifact-says-which-system-it-is-built-for
:feat/a-machine-says-which-networks-it-routes
:fix/a-push-raises-what-a-module-hears
:fix/the-seat-declares-the-facts-its-holder-states
:fix/review-two-small-faults
:feat/the-mesh-says-what-it-applied
:fix/a-modules-name-may-contain-a-dot
:fix/a-manifest-head-says-what-it-accepts
:feat/the-control-plane-prepares-its-own-state
:fix/the-word-ships-before-the-manifest-uses-it
:feat/a-version-prepares-its-state
:fix/the-control-plane-migrates-before-it-serves
:fix/work-longer-than-the-window-says-so
:feat/a-merge-rebuilds-what-it-changed
:fix/an-older-merge-does-not-move-a-source
:fix/a-mirrored-base-is-not-pulled-twice
:fix/a-module-hears-what-it-consumes
:fix/the-controller-may-ask-a-tool
:fix/a-module-serves-its-own-namespace
:fix/the-check-dials-as-the-mesh-does
:fix/an-edge-is-recorded-by-path
:feat/build-edges-are-recorded
:feat/one-bus
:fix/the-controller-follows-what-it-decodes
:feat/a-merge-on-the-forge-builds-what-it-moved
:feat/rollout-hand
:fix/store-seats-keep-their-protocol
:feat/the-build-machine-takes-work-on-nats
:fix/a-principal-may-hear-its-consumer
:fix/the-bus-account-has-jetstream
:fix/the-controller-pins-the-bus-certificate
:feat/the-controller-serves-on-nats
:fix/a-node-may-bind-its-consumer
:fix/mint-leaves-the-control-planes-old-secret-alone
:fix/the-controller-mounts-its-bus-secret
:fix/the-network-map-knows-the-holders
:fix/mint-bare-host-and-again
:fix/mint-finds-the-bus-on-the-hub
:switch/the-controller-speaks-nats
:feat/the-move-mints-and-delivers
:fix/record-the-standing-holder
:feat/amqp-is-not-a-provision
:feat/seat-handover
:fix/rollout-retires-the-old-broker
:fix/the-store-owns-the-seat-set
:fix/go-126-base
:feat/nats-genesis
:fix/a-taken-tunnel-brings-its-port
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Replaces #235's suffix filter, and goes further: the roster no longer carries routed names at all.
A node has one internal domain (
<node>.internal); every route on it is a name under that domain (ADR 0151) and the resolver answers it with the per-node wildcard dnsmasq already has (address=/<node>.internal/<addr>). A node's public domains (one or more) are answered by public DNS. SorouteNamesInTheMeshandcatalogue.NamesServed(+ helpers, tests) are removed;.Namesand.Machinesstay as two fields for template compatibility and are now equal.Verified live before the change:
git.novox.internal,photos-api.novox.internal,plex.ace.internal,anything.shanks.internalall resolve via the wildcard on every node; all nodes resolve through local dnsmasq.Tests, run with
MESH_TEST_POSTGRES(throwaway postgres, asmake check): newTestTheRosterNamesOnlyTheMachinespasses;go vetclean. One failure —TestTheResolverIsToldEveryMachineOnTheNetworkAndToldAgainWhenOneLeaves(dnsmasq has no bus credential, issue 203) — fails identically on unmodified main.The roster publishes a route's internal name, never its public one (hq ADR 0191)to The roster is the machines: each node's internal domain covers its routes (hq ADR 0191)View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.