mirror of https://github.com/coder/coder.git
chore: stop passing addresses on configMaps constructor (#11634)
moving this out of the constructor so that setting this when creating a new `tailnet.Conn` triggers configuring the engine.
This commit is contained in:
parent
a514df71ed
commit
e725f9d7d4
|
@ -72,7 +72,7 @@ type configMaps struct {
|
||||||
clock clock.Clock
|
clock clock.Clock
|
||||||
}
|
}
|
||||||
|
|
||||||
func newConfigMaps(logger slog.Logger, engine engineConfigurable, nodeID tailcfg.NodeID, nodeKey key.NodePrivate, discoKey key.DiscoPublic, addresses []netip.Prefix) *configMaps {
|
func newConfigMaps(logger slog.Logger, engine engineConfigurable, nodeID tailcfg.NodeID, nodeKey key.NodePrivate, discoKey key.DiscoPublic) *configMaps {
|
||||||
pubKey := nodeKey.Public()
|
pubKey := nodeKey.Public()
|
||||||
c := &configMaps{
|
c := &configMaps{
|
||||||
phased: phased{Cond: *(sync.NewCond(&sync.Mutex{}))},
|
phased: phased{Cond: *(sync.NewCond(&sync.Mutex{}))},
|
||||||
|
@ -114,9 +114,8 @@ func newConfigMaps(logger slog.Logger, engine engineConfigurable, nodeID tailcfg
|
||||||
Caps: []filter.CapMatch{},
|
Caps: []filter.CapMatch{},
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
peers: make(map[uuid.UUID]*peerLifecycle),
|
peers: make(map[uuid.UUID]*peerLifecycle),
|
||||||
addresses: addresses,
|
clock: clock.New(),
|
||||||
clock: clock.New(),
|
|
||||||
}
|
}
|
||||||
go c.configLoop()
|
go c.configLoop()
|
||||||
return c
|
return c
|
||||||
|
|
|
@ -34,7 +34,7 @@ func TestConfigMaps_setAddresses_different(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
addrs := []netip.Prefix{netip.MustParsePrefix("192.168.0.200/32")}
|
addrs := []netip.Prefix{netip.MustParsePrefix("192.168.0.200/32")}
|
||||||
|
@ -93,11 +93,18 @@ func TestConfigMaps_setAddresses_same(t *testing.T) {
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
addrs := []netip.Prefix{netip.MustParsePrefix("192.168.0.200/32")}
|
addrs := []netip.Prefix{netip.MustParsePrefix("192.168.0.200/32")}
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), addrs)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
|
// Given: addresses already set
|
||||||
|
uut.L.Lock()
|
||||||
|
uut.addresses = addrs
|
||||||
|
uut.L.Unlock()
|
||||||
|
|
||||||
|
// Then: it doesn't configure
|
||||||
requireNeverConfigures(ctx, t, &uut.phased)
|
requireNeverConfigures(ctx, t, &uut.phased)
|
||||||
|
|
||||||
|
// When: we set addresses
|
||||||
uut.setAddresses(addrs)
|
uut.setAddresses(addrs)
|
||||||
|
|
||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
|
@ -116,7 +123,7 @@ func TestConfigMaps_updatePeers_new(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
p1ID := uuid.UUID{1}
|
p1ID := uuid.UUID{1}
|
||||||
|
@ -186,7 +193,7 @@ func TestConfigMaps_updatePeers_same(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
// Then: we don't configure
|
// Then: we don't configure
|
||||||
|
@ -245,7 +252,7 @@ func TestConfigMaps_updatePeers_disconnect(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
p1ID := uuid.UUID{1}
|
p1ID := uuid.UUID{1}
|
||||||
|
@ -313,7 +320,7 @@ func TestConfigMaps_updatePeers_lost(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
start := time.Date(2024, time.January, 1, 8, 0, 0, 0, time.UTC)
|
start := time.Date(2024, time.January, 1, 8, 0, 0, 0, time.UTC)
|
||||||
mClock := clock.NewMock()
|
mClock := clock.NewMock()
|
||||||
|
@ -406,7 +413,7 @@ func TestConfigMaps_updatePeers_lost_and_found(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
start := time.Date(2024, time.January, 1, 8, 0, 0, 0, time.UTC)
|
start := time.Date(2024, time.January, 1, 8, 0, 0, 0, time.UTC)
|
||||||
mClock := clock.NewMock()
|
mClock := clock.NewMock()
|
||||||
|
@ -492,7 +499,7 @@ func TestConfigMaps_setBlockEndpoints_different(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
p1ID := uuid.MustParse("10000000-0000-0000-0000-000000000000")
|
p1ID := uuid.MustParse("10000000-0000-0000-0000-000000000000")
|
||||||
|
@ -536,7 +543,7 @@ func TestConfigMaps_setBlockEndpoints_same(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
p1ID := uuid.MustParse("10000000-0000-0000-0000-000000000000")
|
p1ID := uuid.MustParse("10000000-0000-0000-0000-000000000000")
|
||||||
|
@ -579,7 +586,7 @@ func TestConfigMaps_setDERPMap_different(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
derpMap := &proto.DERPMap{
|
derpMap := &proto.DERPMap{
|
||||||
|
@ -620,7 +627,7 @@ func TestConfigMaps_setDERPMap_same(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
// Given: DERP Map already set
|
// Given: DERP Map already set
|
||||||
|
@ -697,7 +704,7 @@ func TestConfigMaps_updatePeers_nonexist(t *testing.T) {
|
||||||
nodePrivateKey := key.NewNode()
|
nodePrivateKey := key.NewNode()
|
||||||
nodeID := tailcfg.NodeID(5)
|
nodeID := tailcfg.NodeID(5)
|
||||||
discoKey := key.NewDisco()
|
discoKey := key.NewDisco()
|
||||||
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
|
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
|
||||||
defer uut.close()
|
defer uut.close()
|
||||||
|
|
||||||
// Then: we don't configure
|
// Then: we don't configure
|
||||||
|
|
Loading…
Reference in New Issue