mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-08 22:24:54 +00:00
feat(dns): implement DNS names for machines in m.internal (#359)
* feat(dns): implement extra dns names for machine in m.internal This implements <machinename>.m.internal and <machineid>.m.internal as names that can be queried in the cluster. Listing all machines/services is not implemented, this may come later. Fixes: #340 Signed-off-by: Miek Gieben <miek@miek.nl> * Implement getting all machine address A query for m.internal returns all ip address There is no overflow check Signed-off-by: Miek Gieben <miek@miek.nl> --------- Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
1 parent
5e26cfbead
commit
0cdf721a6a
4 files changed
+133
-16
No files matched your search
@@ -1,11 +1,13 @@
|
||||
package dns
|
||||
|
||||
import (
|
||||
"net/netip"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/network"
|
||||
"github.com/psviderski/uncloud/internal/machine/api/pb"
|
||||
"github.com/psviderski/uncloud/internal/machine/store"
|
||||
"github.com/psviderski/uncloud/pkg/api"
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -75,3 +77,32 @@ func newRecord(serviceID, serviceName, ip, machineID string) store.ContainerReco
|
||||
MachineID: machineID,
|
||||
}
|
||||
}
|
||||
|
||||
func TestClusterResolver_UpdateMachineIPs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
machines := []*pb.MachineInfo{
|
||||
newMachineRecord("x0y0z0", "mach-1", "10.210.0.0/24"),
|
||||
newMachineRecord("x1y1z1", "mach-2", "10.210.1.0/24"),
|
||||
newMachineRecord("x2y2z2", "mach-3", "10.210.2.0/24"),
|
||||
}
|
||||
|
||||
r := NewClusterResolver(nil)
|
||||
r.updateMachineIPs(machines)
|
||||
|
||||
assert.NotEmpty(t, r.Resolve("mach-1.m"))
|
||||
assert.NotEmpty(t, r.Resolve("mach-3.m"))
|
||||
assert.NotEmpty(t, r.Resolve("x0y0z0.m"))
|
||||
|
||||
assert.Equal(t, 3, len(r.Resolve("m")))
|
||||
}
|
||||
|
||||
func newMachineRecord(machineID, machineName, prefix string) *pb.MachineInfo {
|
||||
return &pb.MachineInfo{
|
||||
Id: machineID,
|
||||
Name: machineName,
|
||||
Network: &pb.NetworkConfig{
|
||||
Subnet: pb.NewIPPrefix(netip.MustParsePrefix(prefix)),
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user