Say controller in the installer's and the token's words, as the glossary does
mesh/delivery delivered
mesh/delivery-group group feat/a-machine-joins-through-the-tunnel delivered: every member is delivered
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/a-machine-joins-through-the-tunnel delivered: every member is delivered
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed
This commit is contained in:
@@ -170,17 +170,17 @@ const (
|
|||||||
//
|
//
|
||||||
// **Genesis's own step** (novox/hq 04-ISSUES/146). Every account on the bus reaches it in the
|
// **Genesis's own step** (novox/hq 04-ISSUES/146). Every account on the bus reaches it in the
|
||||||
// declaration of the machine that runs it — which needs that machine to be an enrolled node, and at
|
// declaration of the machine that runs it — which needs that machine to be an enrolled node, and at
|
||||||
// genesis it is not. The control plane composes the list and says it; whoever raised the bus places
|
// genesis it is not. The controller composes the list and says it; whoever raised the bus places
|
||||||
// it. That is this installer: it carried the bus in its bundle, so it knows where the bus reads it,
|
// it. That is this installer: it carried the bus in its bundle, so it knows where the bus reads it,
|
||||||
// and the control plane never has to.
|
// and the controller never has to.
|
||||||
func placeTheBusUsers(ctx context.Context, control controlPlane, say func(string)) error {
|
func placeTheBusUsers(ctx context.Context, control controlPlane, say func(string)) error {
|
||||||
users, err := control.tell(ctx, "broker", "accounts")
|
users, err := control.tell(ctx, "broker", "accounts")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("the control plane would not say the bus's users, so no machine could "+
|
return fmt.Errorf("the controller would not say the bus's users, so no machine could "+
|
||||||
"join it: %w", err)
|
"join it: %w", err)
|
||||||
}
|
}
|
||||||
if !strings.Contains(users, "accounts") {
|
if !strings.Contains(users, "accounts") {
|
||||||
return fmt.Errorf("the control plane's account of the bus's users is not one:\n%s", indent(users))
|
return fmt.Errorf("the controller's account of the bus's users is not one:\n%s", indent(users))
|
||||||
}
|
}
|
||||||
script := "umask 077 && cat > " + busAccounts + ".next <<'MESHBUSUSERS'\n" + users + "\nMESHBUSUSERS\n" +
|
script := "umask 077 && cat > " + busAccounts + ".next <<'MESHBUSUSERS'\n" + users + "\nMESHBUSUSERS\n" +
|
||||||
"mv " + busAccounts + ".next " + busAccounts + " && docker kill -s HUP " + busContainer + " >/dev/null"
|
"mv " + busAccounts + ".next " + busAccounts + " && docker kill -s HUP " + busContainer + " >/dev/null"
|
||||||
|
|||||||
@@ -410,7 +410,7 @@ func TestATokenSaysWhatTheMeshCallsThisMachine(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// A token through the tunnel carries the one peer, in the field names the control plane writes
|
// A token through the tunnel carries the one peer, in the field names the controller writes
|
||||||
// (novox/hq ADR 0169), and an incomplete tunnel is refused naming what is missing.
|
// (novox/hq ADR 0169), and an incomplete tunnel is refused naming what is missing.
|
||||||
func TestATokenThroughTheTunnelParsesAndAPartOneIsRefused(t *testing.T) {
|
func TestATokenThroughTheTunnelParsesAndAPartOneIsRefused(t *testing.T) {
|
||||||
whole := map[string]any{"v": 1, "node": "n", "broker": "10.42.0.1:4222", "fingerprint": "sha256:x",
|
whole := map[string]any{"v": 1, "node": "n", "broker": "10.42.0.1:4222", "fingerprint": "sha256:x",
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ type Token struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TokenTunnel is the joining machine's side of its first tunnel. Field names are the wire format
|
// TokenTunnel is the joining machine's side of its first tunnel. Field names are the wire format
|
||||||
// the control plane writes.
|
// the controller writes.
|
||||||
type TokenTunnel struct {
|
type TokenTunnel struct {
|
||||||
Key string `json:"key"`
|
Key string `json:"key"`
|
||||||
Address string `json:"address"`
|
Address string `json:"address"`
|
||||||
|
|||||||
Reference in New Issue
Block a user