k8s mode fix
diff --git a/app/dubbo-cp/cmd/run.go b/app/dubbo-cp/cmd/run.go
index f168898..d4eb467 100644
--- a/app/dubbo-cp/cmd/run.go
+++ b/app/dubbo-cp/cmd/run.go
@@ -19,6 +19,8 @@
import (
"fmt"
+ "github.com/apache/dubbo-kubernetes/pkg/config/core"
+ "github.com/apache/dubbo-kubernetes/pkg/test"
"time"
)
@@ -31,7 +33,6 @@
"github.com/apache/dubbo-kubernetes/pkg/bufman"
"github.com/apache/dubbo-kubernetes/pkg/config"
dubbo_cp "github.com/apache/dubbo-kubernetes/pkg/config/app/dubbo-cp"
- "github.com/apache/dubbo-kubernetes/pkg/config/core"
"github.com/apache/dubbo-kubernetes/pkg/core/bootstrap"
dubbo_cmd "github.com/apache/dubbo-kubernetes/pkg/core/cmd"
dds_global "github.com/apache/dubbo-kubernetes/pkg/dds/global"
@@ -42,7 +43,6 @@
"github.com/apache/dubbo-kubernetes/pkg/dubbo"
"github.com/apache/dubbo-kubernetes/pkg/hds"
"github.com/apache/dubbo-kubernetes/pkg/intercp"
- "github.com/apache/dubbo-kubernetes/pkg/test"
"github.com/apache/dubbo-kubernetes/pkg/util/os"
dubbo_version "github.com/apache/dubbo-kubernetes/pkg/version"
"github.com/apache/dubbo-kubernetes/pkg/xds"
@@ -100,13 +100,6 @@
"minimim-open-files", minOpenFileLimit)
}
- if rt.GetMode() == core.Test {
- if err := test.Setup(rt); err != nil {
- runLog.Error(err, "unable to set up test")
- return err
- }
- }
-
if err := admin.Setup(rt); err != nil {
runLog.Error(err, "unable to set up admin")
return err
@@ -151,6 +144,13 @@
return err
}
+ if rt.GetMode() == core.Test {
+ if err := test.Setup(rt); err != nil {
+ runLog.Error(err, "unable to set up test")
+ return err
+ }
+ }
+
runLog.Info("starting Control Plane", "version", dubbo_version.Build.Version)
if err := rt.Start(gracefulCtx.Done()); err != nil {
runLog.Error(err, "problem running Control Plane")
diff --git a/pkg/dubbo/pusher/pusher.go b/pkg/dubbo/pusher/pusher.go
index f3aa079..e8427e9 100644
--- a/pkg/dubbo/pusher/pusher.go
+++ b/pkg/dubbo/pusher/pusher.go
@@ -19,6 +19,7 @@
import (
"context"
+ "github.com/apache/dubbo-kubernetes/pkg/core/resources/registry"
"reflect"
"time"
)
@@ -72,6 +73,7 @@
eventBus: eventBus,
newFullResyncTicker: newFullResyncTicker,
resourceTypes: make(map[core_model.ResourceType]struct{}),
+ resourceLastPushed: make(map[core_model.ResourceType]core_model.ResourceList),
resourceRevisions: make(map[core_model.ResourceType]revision),
resourceChangedEventListeners: make(map[core_model.ResourceType]events.Listener),
eventsChannel: make(chan *changedEvent, eventsChannelSize),
@@ -152,8 +154,12 @@
return nil
case ce := <-p.eventsChannel:
log.Info("event received", "ResourceType", ce.resourceType)
- var resourceList core_model.ResourceList
- err := p.resourceManager.List(ctx, resourceList)
+ resourceList, err := registry.Global().NewList(ce.resourceType)
+ if err != nil {
+ log.Info("can not get resourceList")
+ continue
+ }
+ err = p.resourceManager.List(ctx, resourceList)
if err != nil {
log.Error(err, "list resource failed", "ResourceType", ce.resourceType)
continue
diff --git a/pkg/test/component.go b/pkg/test/component.go
index 18df6c2..60769f2 100644
--- a/pkg/test/component.go
+++ b/pkg/test/component.go
@@ -19,6 +19,7 @@
import (
mesh_proto "github.com/apache/dubbo-kubernetes/api/mesh/v1alpha1"
+ "github.com/apache/dubbo-kubernetes/pkg/core"
"github.com/apache/dubbo-kubernetes/pkg/core/resources/apis/mesh"
core_model "github.com/apache/dubbo-kubernetes/pkg/core/resources/model"
"github.com/apache/dubbo-kubernetes/pkg/core/resources/store"
@@ -26,36 +27,63 @@
"strings"
)
+var testServerLog = core.Log.WithName("test")
+
func Setup(rt core_runtime.Runtime) error {
+ testServer := NewTestServer(rt)
+ if err := rt.Add(testServer); err != nil {
+ testServerLog.Error(err, "fail to start the test server")
+ }
+ return nil
+}
+
+type TestServer struct {
+ rt core_runtime.Runtime
+}
+
+func NewTestServer(rt core_runtime.Runtime) *TestServer {
+ return &TestServer{rt: rt}
+}
+
+func (t *TestServer) Start(stop <-chan struct{}) error {
+ // 测试dataplane资源
+ if err := testDataplane(t.rt); err != nil {
+ return err
+ }
// 测试mapping资源
- if err := testMapping(rt); err != nil {
+ if err := testMapping(t.rt); err != nil {
return err
}
// 测试metadata资源
- if err := testMetadata(rt); err != nil {
+ if err := testMetadata(t.rt); err != nil {
return err
}
- // 测试dataplane资源
- if err := testDataplane(rt); err != nil {
- return err
- }
+
return nil
}
+func (a *TestServer) NeedLeaderElection() bool {
+ return false
+}
+
// dataplane资源只有get, list接口, 其余均不支持
func testDataplane(rt core_runtime.Runtime) error {
manager := rt.ResourceManager()
dataplaneResource := mesh.NewDataplaneResource()
- // get
- if err := manager.Get(rt.AppContext(), dataplaneResource, store.GetByApplication("dubbo-springboot-demo-provider"), store.GetByRevision("bdc0958191bba7a0f050a32709ee1262")); err != nil {
- return err
- }
// list
dataplaneList := &mesh.DataplaneResourceList{}
if err := manager.List(rt.AppContext(), dataplaneList); err != nil {
return err
}
+
+ // get
+ if err := manager.Get(rt.AppContext(), dataplaneResource,
+ store.GetByApplication("dubbo-springboot-demo-provider"),
+ store.GetByRevision("bdc0958191bba7a0f050a32709ee1262")); err != nil {
+ return err
+ }
+
return nil
}