fix universal bug
diff --git a/conf/dubbo-cp.yaml b/conf/dubbo-cp.yaml
index cf2c2c3..d61487c 100644
--- a/conf/dubbo-cp.yaml
+++ b/conf/dubbo-cp.yaml
@@ -19,6 +19,6 @@
runtime:
kubernetes:
admissionServer:
- address: 127.0.0.1
+ address: 10.23.132.51
port: 5443
certDir: test/cert
\ No newline at end of file
diff --git a/pkg/core/governance/governance_config.go b/pkg/core/governance/governance_config.go
index aa89969..acd2ca9 100644
--- a/pkg/core/governance/governance_config.go
+++ b/pkg/core/governance/governance_config.go
@@ -19,6 +19,7 @@
import (
"errors"
+ "github.com/dubbogo/go-zookeeper/zk"
)
import (
@@ -148,24 +149,30 @@
}
// GetConfig transform ZK specified 'node does not exist' err into unified admin rule error
-func (zk *ZkGovImpl) GetConfig(key string) (string, error) {
+func (c *ZkGovImpl) GetConfig(key string) (string, error) {
if key == "" {
return "", errors.New("key is empty")
}
- rule, err := zk.configCenter.GetRule(key, config_center.WithGroup(zk.group))
+ rule, err := c.configCenter.GetRule(key, config_center.WithGroup(c.group))
if err != nil {
+ if errors.Is(err, zk.ErrNoNode) {
+ return "", nil
+ }
return "", err
}
return rule, nil
}
// SetConfig transform ZK specified 'node already exist' err into unified admin rule error
-func (zk *ZkGovImpl) SetConfig(key string, value string) error {
+func (c *ZkGovImpl) SetConfig(key string, value string) error {
if key == "" || value == "" {
return errors.New("key or value is empty")
}
- err := zk.configCenter.PublishConfig(key, zk.group, value)
+ err := c.configCenter.PublishConfig(key, c.group, value)
if err != nil {
+ if errors.Is(err, zk.ErrNoNode) {
+ return nil
+ }
return err
}
return nil
diff --git a/pkg/core/reg_client/zookeeper/zookeeper.go b/pkg/core/reg_client/zookeeper/zookeeper.go
index 95c0089..5e1a460 100644
--- a/pkg/core/reg_client/zookeeper/zookeeper.go
+++ b/pkg/core/reg_client/zookeeper/zookeeper.go
@@ -52,6 +52,9 @@
func (z *zookeeperRegClient) GetChildren(path string) ([]string, error) {
children, err := z.client.GetChildren(path)
if err != nil {
+ if errors.Is(err, zk.ErrNoNode) {
+ return []string{}, nil
+ }
return nil, err
}
return children, nil
@@ -60,6 +63,9 @@
func (z *zookeeperRegClient) SetContent(path string, value []byte) error {
err := z.client.CreateWithValue(path, value)
if err != nil {
+ if errors.Is(err, zk.ErrNoNode) {
+ return nil
+ }
if errors.Is(err, zk.ErrNodeExists) {
_, stat, _ := z.client.GetContent(path)
_, setErr := z.client.SetContent(path, value, stat.Version)
@@ -76,6 +82,9 @@
func (z *zookeeperRegClient) GetContent(path string) ([]byte, error) {
content, _, err := z.client.GetContent(path)
if err != nil {
+ if errors.Is(err, zk.ErrNoNode) {
+ return []byte{}, nil
+ }
return []byte{}, errors.WithStack(err)
}
return content, nil
@@ -84,6 +93,9 @@
func (z *zookeeperRegClient) DeleteContent(path string) error {
err := z.client.Delete(path)
if err != nil {
+ if errors.Is(err, zk.ErrNoNode) {
+ return nil
+ }
return errors.WithStack(err)
}
return nil
@@ -96,7 +108,7 @@
"zookeeperRegClient",
strings.Split(url.Location, ","),
false,
- gxzookeeper.WithZkTimeOut(url.GetParamDuration(consts.TimeoutKey, "15s")),
+ gxzookeeper.WithZkTimeOut(url.GetParamDuration(consts.TimeoutKey, "25s")),
)
if err != nil {
panic(err)
diff --git a/pkg/plugins/resources/traditional/store.go b/pkg/plugins/resources/traditional/store.go
index 0139fd4..56cae11 100644
--- a/pkg/plugins/resources/traditional/store.go
+++ b/pkg/plugins/resources/traditional/store.go
@@ -20,7 +20,6 @@
import (
"context"
"fmt"
- "github.com/dubbogo/go-zookeeper/zk"
"sync"
)
@@ -256,7 +255,10 @@
}
id := mesh_proto.BuildServiceKey(base)
path := mesh_proto.GetRoutePath(id, consts.TagRoute)
- cfg, _ := t.governance.GetConfig(path)
+ cfg, err := t.governance.GetConfig(path)
+ if err != nil {
+ return err
+ }
if cfg == "" {
return fmt.Errorf("tag route %s not found", id)
}
@@ -583,9 +585,6 @@
path := mesh_proto.GetRoutePath(id, consts.TagRoute)
cfg, err := c.governance.GetConfig(path)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
if cfg != "" {
@@ -610,9 +609,6 @@
path := mesh_proto.GetRoutePath(id, consts.ConditionRoute)
cfg, err := c.governance.GetConfig(path)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
if cfg != "" {
@@ -637,9 +633,6 @@
path := mesh_proto.GetOverridePath(id)
cfg, err := c.governance.GetConfig(path)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
if cfg != "" {
@@ -656,9 +649,6 @@
key := opts.Name
set, err := c.metadataReport.GetServiceAppMapping(key, mappingGroup, nil)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
meta := &resourceMetaObject{
@@ -685,9 +675,6 @@
if revision == "" {
children, err := c.regClient.GetChildren(getMetadataPath(app))
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
revision = children[0]
@@ -695,9 +682,6 @@
id := dubbo_identifier.NewSubscriberMetadataIdentifier(app, revision)
appMetadata, err := c.metadataReport.GetAppMetadata(id)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
metaData := resource.GetSpec().(*mesh_proto.MetaData)
@@ -723,9 +707,6 @@
path := GenerateCpGroupPath(string(resource.Descriptor().Name), opts.Name)
value, err := c.regClient.GetContent(path)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
if err := core_model.FromYAML(value, resource.GetSpec()); err != nil {
@@ -764,9 +745,6 @@
// 1. 首先获取到所有到key
keys, err := c.metadataReport.GetConfigKeysByGroup(mappingGroup)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
for _, key := range keys.Values() {
@@ -774,9 +752,6 @@
// 通过key得到所有的mapping映射关系
set, err := c.metadataReport.GetServiceAppMapping(key, mappingGroup, nil)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
meta := &resourceMetaObject{
@@ -802,9 +777,6 @@
rootDir := getMetadataPath()
appNames, err := c.regClient.GetChildren(rootDir)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
for _, app := range appNames {
@@ -812,9 +784,6 @@
path := getMetadataPath(app)
revisions, err := c.regClient.GetChildren(path)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
if revisions[0] == "provider" ||
@@ -825,9 +794,6 @@
id := dubbo_identifier.NewSubscriberMetadataIdentifier(app, revision)
appMetadata, err := c.metadataReport.GetAppMetadata(id)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
item := resources.NewItem()
@@ -867,18 +833,12 @@
rootDir := getDubboCpPath(string(resources.GetItemType()))
names, err := c.regClient.GetChildren(rootDir)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
for _, name := range names {
path := getDubboCpPath(string(resources.GetItemType()), name)
bytes, err := c.regClient.GetContent(path)
if err != nil {
- if errors.Is(err, zk.ErrNoNode) {
- return nil
- }
return err
}
item := resources.NewItem()
diff --git a/test/control-plane/cp.yaml b/test/control-plane/cp.yaml
index cef2f1a..01b2402 100644
--- a/test/control-plane/cp.yaml
+++ b/test/control-plane/cp.yaml
@@ -59,7 +59,7 @@
values: ["kube-system"]
clientConfig:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
- url: https://localhost:5443/default-dubbo-io-v1alpha1-mesh
+ url: https://10.23.132.51:5443/default-dubbo-io-v1alpha1-mesh
rules:
- apiGroups:
- dubbo.io
@@ -81,7 +81,7 @@
values: ["dubbo-system"]
clientConfig:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
- url: https://localhost:5443/owner-reference-dubbo-io-v1alpha1
+ url: https://10.23.132.51:5443/owner-reference-dubbo-io-v1alpha1
rules:
- apiGroups:
- dubbo.io
@@ -116,7 +116,7 @@
values: ["kube-system"]
clientConfig:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
- url: https://localhost:5443/validate-dubbo-io-v1alpha1
+ url: https://10.23.132.51:5443/validate-dubbo-io-v1alpha1
rules:
- apiGroups:
- dubbo.io
@@ -156,7 +156,7 @@
values: ["kube-system"]
clientConfig:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
- url: https://localhost:5443/validate-v1-service
+ url: https://10.23.132.51:5443/validate-v1-service
rules:
- apiGroups:
- ""