Skip to content

Commit

Permalink
fix(kuma-cp) resolver set global VIPs (#1243)
Browse files Browse the repository at this point in the history
  • Loading branch information
lobkovilya authored Dec 1, 2020
1 parent 47b8752 commit 2af0388
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
2 changes: 1 addition & 1 deletion mk/e2e.new.mk
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ test/e2e/debug: build/kumactl images docker/build/universal test/e2e/kind/start
K8SCLUSTERS="$(K8SCLUSTERS)" \
KUMACTLBIN=${BUILD_ARTIFACTS_DIR}/kumactl/kumactl \
GINKGO_EDITOR_INTEGRATION=true \
ginkgo --failFast ./test/e2e/...
ginkgo --failFast $(GOFLAGS) $(LD_FLAGS) ./test/e2e/...
$(MAKE) test/e2e/kind/stop

.PHONY: test/e2e
Expand Down
10 changes: 8 additions & 2 deletions pkg/dns/vips_allocator.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ func (d *VIPsAllocator) createOrUpdateVIPConfigs(meshes ...string) (errs error)
return err
}

updateResolver := false

forEachMesh := func(mesh string, meshed vips.List) error {
serviceSet, err := BuildServiceSet(d.rm, mesh)
if err != nil {
Expand All @@ -106,12 +108,12 @@ func (d *VIPsAllocator) createOrUpdateVIPConfigs(meshes ...string) (errs error)
if !updated {
return updError
}
updateResolver = updateResolver || updated
global.Append(meshed)

if err := d.persistence.Set(mesh, meshed); err != nil {
return multierr.Append(updError, err)
}

d.resolver.SetVIPs(meshed)
return updError
}

Expand All @@ -125,6 +127,10 @@ func (d *VIPsAllocator) createOrUpdateVIPConfigs(meshes ...string) (errs error)
}
}

if updateResolver {
d.resolver.SetVIPs(global)
}

return errs
}

Expand Down
10 changes: 9 additions & 1 deletion pkg/dns/vips_allocator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,13 @@ var _ = Describe("VIP Allocator", func() {
var rm manager.ResourceManager
var cm config_manager.ConfigManager
var allocator *dns.VIPsAllocator
var r resolver.DNSResolver

BeforeEach(func() {
s := memory.NewStore()
rm = manager.NewResourceManager(s)
cm = config_manager.NewConfigManager(s)
r = resolver.NewDNSResolver("mesh")

err := rm.Create(context.Background(), &mesh.MeshResource{}, store.CreateByKey("mesh-1", model.NoMesh))
Expect(err).ToNot(HaveOccurred())
Expand All @@ -63,7 +65,7 @@ var _ = Describe("VIP Allocator", func() {
err = rm.Create(context.Background(), &mesh.DataplaneResource{Spec: *dp("web")}, store.CreateByKey("dp-3", "mesh-2"))
Expect(err).ToNot(HaveOccurred())

allocator, err = dns.NewVIPsAllocator(rm, cm, "240.0.0.0/24", resolver.NewDNSResolver("mesh"))
allocator, err = dns.NewVIPsAllocator(rm, cm, "240.0.0.0/24", r)
Expect(err).ToNot(HaveOccurred())
})

Expand All @@ -82,6 +84,12 @@ var _ = Describe("VIP Allocator", func() {
vipList, err = persistence.GetByMesh("mesh-2")
Expect(err).ToNot(HaveOccurred())

for _, service := range []string{"backend", "frontend", "web"} {
ip, err := r.ForwardLookup(service)
Expect(err).ToNot(HaveOccurred())
Expect(ip).To(HavePrefix("240.0.0"))
}

Expect(vipList).To(HaveLen(1))
})

Expand Down

0 comments on commit 2af0388

Please sign in to comment.