This is an automated email from the ASF dual-hosted git repository.

zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git


The following commit(s) were added to refs/heads/master by this push:
     new 45e90148 Modify and optimize the client-go directory and its contents. 
(#844)
45e90148 is described below

commit 45e90148e2d4d6e6ffabb680b4e30f62ef5c690c
Author: mfordjody <[email protected]>
AuthorDate: Wed Jan 7 21:04:19 2026 +0800

    Modify and optimize the client-go directory and its contents. (#844)
---
 Makefile                                           |  10 +-
 Makefile.common.mk                                 |  13 --
 Makefile.overrides.mk                              |   1 -
 NOTICE                                             |   2 +-
 Makefile.core.mk => client-go/Makefile.core.mk     |  37 +++--
 .../Makefile.overrides.mk                          |   7 +-
 tests/loadtest/go.mod => client-go/cmd/main.go     |   7 +-
 .../v1alpha3/zz_generated.deepcopy.gen.go          | 152 +++++++++++++++++
 .../networking/v1alpha3/destinationrule.go         |   3 +-
 .../networking/v1alpha3/virtualservice.go          |   3 +-
 client-go/pkg/applyconfiguration/utils.go          |   5 +-
 client-go/pkg/clientset/versioned/clientset.gen.go |   2 +-
 .../versioned/fake/clientset_generated.gen.go      |   7 +-
 .../networking/v1alpha3/destinationrule.gen.go     |   4 +-
 .../v1alpha3/fake/fake_destinationrule.gen.go      |   2 +-
 .../v1alpha3/fake/fake_networking_client.gen.go    |   3 +-
 .../v1alpha3/fake/fake_virtualservice.gen.go       |   2 +-
 .../networking/v1alpha3/networking_client.gen.go   |   2 +-
 .../networking/v1alpha3/virtualservice.gen.go      |   4 +-
 .../pkg/informers/externalversions/factory.gen.go  |   6 +-
 .../internalinterfaces/factory_interfaces.gen.go   |   2 +-
 .../externalversions/networking/interface.gen.go   |   4 +-
 .../networking/v1alpha3/destinationrule.gen.go     |   6 +-
 .../networking/v1alpha3/interface.gen.go           |   2 +-
 .../networking/v1alpha3/virtualservice.gen.go      |   6 +-
 tests/loadtest/.gitignore                          |  18 ---
 tests/loadtest/Makefile                            |  70 --------
 tests/loadtest/README.md                           | 101 ------------
 tests/loadtest/RESULTS.md                          | 109 -------------
 tests/loadtest/docker/dockerfile.client            |  19 ---
 tests/loadtest/docker/dockerfile.server            |  19 ---
 tests/loadtest/go.sum                              |   0
 tests/loadtest/k8s/loadtest.yaml                   | 180 ---------------------
 tests/loadtest/proto/gen.sh                        |  50 ------
 tests/loadtest/proto/loadtest.proto                |  44 -----
 tools/{metadata => annotations_prep}/main.go       |  16 ++
 tools/build-tools/docker/Dockerfile                |  33 ----
 tools/cmd/kubetype-gen/boilerplate.go.txt          |   3 +-
 tools/cmd/kubetype-gen/generators/naming.go        |   3 +-
 tools/cmd/kubetype-gen/generators/package.go       |   3 +-
 tools/cmd/kubetype-gen/generators/register.go      |   3 +-
 tools/cmd/kubetype-gen/generators/types.go         |   3 +-
 tools/cmd/kubetype-gen/main.go                     |   3 +-
 tools/cmd/kubetype-gen/metadata/metadata.go        |   1 -
 tools/cmd/kubetype-gen/scanner/scanner.go          |   3 +-
 tools/scripts/setup_env.sh                         |  11 --
 46 files changed, 252 insertions(+), 732 deletions(-)

diff --git a/Makefile b/Makefile
index ecb80294..c41923aa 100644
--- a/Makefile
+++ b/Makefile
@@ -24,8 +24,12 @@ clone-sample:
        mkdir -p bin
        cp -r samples bin/samples
 
+#########
+
+#########
+
 # allow optional per-repo overrides
--include Makefile.overrides.mk
+-include client-go/Makefile.overrides.mk
 
 # Set the environment variable BUILD_WITH_CONTAINER to use a container
 # to build the repo. The only dependencies in this mode are to have make and
@@ -41,7 +45,7 @@ export
 
 RUN = ./tools/scripts/run.sh
 
-MAKE_DOCKER = $(RUN) make --no-print-directory -e -f Makefile.core.mk
+MAKE_DOCKER = $(RUN) make --no-print-directory -e -f client-go/Makefile.core.mk
 
 %:
        @$(MAKE_DOCKER) $@
@@ -67,6 +71,6 @@ include out/.env
 export
 
 export GOBIN ?= $(GOPATH)/bin
-include Makefile.core.mk
+include client-go/Makefile.core.mk
 
 endif
\ No newline at end of file
diff --git a/Makefile.common.mk b/Makefile.common.mk
deleted file mode 100644
index 370272a8..00000000
--- a/Makefile.common.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-tidy-go:
-       @find -name go.mod -execdir go mod tidy \;
-
-mod-download-go:
-       @-GOFLAGS="-mod=readonly" find -name go.mod -execdir go mod download \;
-# go mod tidy is needed with Golang 1.16+ as go mod download affects go.sum
-# https://github.com/golang/go/issues/43994
-       @find -name go.mod -execdir go mod tidy \;
-
-format-go: tidy-go
-       @${FINDFILES} -name '*.go' \( ! \( -name '*.gen.go' -o -name '*.pb.go' 
\) \) -print0 | ${XARGS} tools/scripts/format_go.sh
-
-.PHONY: format-go tidy-go mod-download-go
diff --git a/Makefile.overrides.mk b/Makefile.overrides.mk
deleted file mode 100644
index de678eac..00000000
--- a/Makefile.overrides.mk
+++ /dev/null
@@ -1 +0,0 @@
-BUILD_WITH_CONTAINER ?= 1
diff --git a/NOTICE b/NOTICE
index 4e94f695..6b506428 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Dubbo Kubernetes
-Copyright 2018-2025 The Apache Software Foundation
+Copyright 2018-2026 The Apache Software Foundation
 
 This product includes software developed by the Dubbo Kubernetes project
 at The Apache Software Foundation (http://dubbo.apache.org/).
diff --git a/Makefile.core.mk b/client-go/Makefile.core.mk
similarity index 67%
rename from Makefile.core.mk
rename to client-go/Makefile.core.mk
index a6dcadb8..40a24268 100644
--- a/Makefile.core.mk
+++ b/client-go/Makefile.core.mk
@@ -1,4 +1,19 @@
-gen: generate-k8s-client tidy-go
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+gen: generate-k8s-client
 
 clean: clean-k8s-client
 
@@ -9,11 +24,17 @@ client_gen = client-gen
 lister_gen = lister-gen
 informer_gen = informer-gen
 
-kube_dubbo_source_packages = 
github.com/apache/dubbo-kubernetes/api/networking/v1alpha3
+kube_dubbo_source_packages = $(subst $(space),$(empty), \
+    github.com/apache/dubbo-kubernetes/api/networking/v1alpha3 \
+    )
 
-kube_base_output_package = client-go/pkg
+kube_base_output_package = github.com/apache/dubbo-kubernetes/client-go/pkg
 kube_api_base_package = $(kube_base_output_package)/apis
-kube_api_packages = 
github.com/apache/dubbo-kubernetes/$(kube_api_base_package)/networking/v1alpha3
+
+kube_api_packages = $(subst $(space),$(empty), \
+    $(kube_api_base_package)/networking/v1alpha3 \
+    )
+
 kube_api_applyconfiguration_packages = 
$(kube_api_packages),k8s.io/apimachinery/pkg/apis/meta/v1
 kube_clientset_package = $(kube_base_output_package)/clientset
 kube_clientset_name = versioned
@@ -39,11 +60,11 @@ else
 endif
 
 rename_generated_files=\
-       cd client-go && find $(subst client-go/, $(empty), $(subst $(comma), 
$(space), $(kube_api_packages)) $(subst github.com/apache/dubbo-kubernetes/, 
$(empty), $(kube_clientset_package)) $(subst 
github.com/apache/dubbo-kubernetes/, $(empty), $(kube_listers_package)) $(subst 
github.com/apache/dubbo-kubernetes/, $(empty), $(kube_informers_package))) \
+       cd client-go && find $(subst client-go/, $(empty), $(subst 
github.com/apache/dubbo-kubernetes/, $(empty), $(subst $(comma), $(space), 
$(kube_api_packages) $(kube_clientset_package) $(kube_listers_package) 
$(kube_informers_package)))) \
        -name '*.go' -and -not -name 'doc.go' -and -not -name '*.gen.go' -type 
f -exec sh -c 'mv "$$1" "$${1%.go}".gen.go' - '{}' \; || true
 
 fixup_generated_files=\
-       find client-go -name "*.deepcopy.gen.go" -type f -exec sed -i '' -e 
'/\*out = \*in/d' {} +
+       find . -name "*.deepcopy.gen.go" -type f | xargs sed -i -e '/\*out = 
\*in/d'
 
 .PHONY: generate-k8s-client
 generate-k8s-client:
@@ -67,6 +88,4 @@ generate-k8s-client:
 .PHONY: clean-k8s-client
 clean-k8s-client:
     # remove generated code
-       @rm -rf client-go/pkg
-
-include Makefile.common.mk
+       @rm -rf client-go/pkg
\ No newline at end of file
diff --git a/tests/loadtest/.dockerignore b/client-go/Makefile.overrides.mk
similarity index 88%
rename from tests/loadtest/.dockerignore
rename to client-go/Makefile.overrides.mk
index fe90a152..25ab7935 100644
--- a/tests/loadtest/.dockerignore
+++ b/client-go/Makefile.overrides.mk
@@ -13,9 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-*.md
-*.pb.go
-.git/
-.gitignore
-README.md
-# Note: bin/ is NOT ignored - it's needed for Docker builds
\ No newline at end of file
+BUILD_WITH_CONTAINER ?= 1
diff --git a/tests/loadtest/go.mod b/client-go/cmd/main.go
similarity index 86%
rename from tests/loadtest/go.mod
rename to client-go/cmd/main.go
index 281b7481..212001df 100644
--- a/tests/loadtest/go.mod
+++ b/client-go/cmd/main.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,6 +14,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-module github.com/apache/dubbo-kubernetes/test/loadtest
+package main
 
-go 1.24.0
+func main() {}
diff --git 
a/client-go/pkg/apis/networking/v1alpha3/zz_generated.deepcopy.gen.go 
b/client-go/pkg/apis/networking/v1alpha3/zz_generated.deepcopy.gen.go
new file mode 100644
index 00000000..148393f5
--- /dev/null
+++ b/client-go/pkg/apis/networking/v1alpha3/zz_generated.deepcopy.gen.go
@@ -0,0 +1,152 @@
+//go:build !ignore_autogenerated
+// +build !ignore_autogenerated
+
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by deepcopy-gen. DO NOT EDIT.
+
+package v1alpha3
+
+import (
+       runtime "k8s.io/apimachinery/pkg/runtime"
+)
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, 
writing into out. in must be non-nil.
+func (in *DestinationRule) DeepCopyInto(out *DestinationRule) {
+       out.TypeMeta = in.TypeMeta
+       in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+       in.Spec.DeepCopyInto(&out.Spec)
+       in.Status.DeepCopyInto(&out.Status)
+       return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, 
creating a new DestinationRule.
+func (in *DestinationRule) DeepCopy() *DestinationRule {
+       if in == nil {
+               return nil
+       }
+       out := new(DestinationRule)
+       in.DeepCopyInto(out)
+       return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, 
creating a new runtime.Object.
+func (in *DestinationRule) DeepCopyObject() runtime.Object {
+       if c := in.DeepCopy(); c != nil {
+               return c
+       }
+       return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, 
writing into out. in must be non-nil.
+func (in *DestinationRuleList) DeepCopyInto(out *DestinationRuleList) {
+       out.TypeMeta = in.TypeMeta
+       in.ListMeta.DeepCopyInto(&out.ListMeta)
+       if in.Items != nil {
+               in, out := &in.Items, &out.Items
+               *out = make([]*DestinationRule, len(*in))
+               for i := range *in {
+                       if (*in)[i] != nil {
+                               in, out := &(*in)[i], &(*out)[i]
+                               *out = new(DestinationRule)
+                               (*in).DeepCopyInto(*out)
+                       }
+               }
+       }
+       return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, 
creating a new DestinationRuleList.
+func (in *DestinationRuleList) DeepCopy() *DestinationRuleList {
+       if in == nil {
+               return nil
+       }
+       out := new(DestinationRuleList)
+       in.DeepCopyInto(out)
+       return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, 
creating a new runtime.Object.
+func (in *DestinationRuleList) DeepCopyObject() runtime.Object {
+       if c := in.DeepCopy(); c != nil {
+               return c
+       }
+       return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, 
writing into out. in must be non-nil.
+func (in *VirtualService) DeepCopyInto(out *VirtualService) {
+       out.TypeMeta = in.TypeMeta
+       in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+       in.Spec.DeepCopyInto(&out.Spec)
+       in.Status.DeepCopyInto(&out.Status)
+       return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, 
creating a new VirtualService.
+func (in *VirtualService) DeepCopy() *VirtualService {
+       if in == nil {
+               return nil
+       }
+       out := new(VirtualService)
+       in.DeepCopyInto(out)
+       return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, 
creating a new runtime.Object.
+func (in *VirtualService) DeepCopyObject() runtime.Object {
+       if c := in.DeepCopy(); c != nil {
+               return c
+       }
+       return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, 
writing into out. in must be non-nil.
+func (in *VirtualServiceList) DeepCopyInto(out *VirtualServiceList) {
+       out.TypeMeta = in.TypeMeta
+       in.ListMeta.DeepCopyInto(&out.ListMeta)
+       if in.Items != nil {
+               in, out := &in.Items, &out.Items
+               *out = make([]*VirtualService, len(*in))
+               for i := range *in {
+                       if (*in)[i] != nil {
+                               in, out := &(*in)[i], &(*out)[i]
+                               *out = new(VirtualService)
+                               (*in).DeepCopyInto(*out)
+                       }
+               }
+       }
+       return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, 
creating a new VirtualServiceList.
+func (in *VirtualServiceList) DeepCopy() *VirtualServiceList {
+       if in == nil {
+               return nil
+       }
+       out := new(VirtualServiceList)
+       in.DeepCopyInto(out)
+       return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, 
creating a new runtime.Object.
+func (in *VirtualServiceList) DeepCopyObject() runtime.Object {
+       if c := in.DeepCopy(); c != nil {
+               return c
+       }
+       return nil
+}
diff --git 
a/client-go/pkg/applyconfiguration/networking/v1alpha3/destinationrule.go 
b/client-go/pkg/applyconfiguration/networking/v1alpha3/destinationrule.go
index 3ce4673a..b935b8b6 100644
--- a/client-go/pkg/applyconfiguration/networking/v1alpha3/destinationrule.go
+++ b/client-go/pkg/applyconfiguration/networking/v1alpha3/destinationrule.go
@@ -19,10 +19,9 @@
 package v1alpha3
 
 import (
-       v1 "client-go/pkg/applyconfiguration/meta/v1"
-
        v1alpha1 "github.com/apache/dubbo-kubernetes/api/meta/v1alpha1"
        v1alpha3 "github.com/apache/dubbo-kubernetes/api/networking/v1alpha3"
+       v1 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/meta/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        types "k8s.io/apimachinery/pkg/types"
 )
diff --git 
a/client-go/pkg/applyconfiguration/networking/v1alpha3/virtualservice.go 
b/client-go/pkg/applyconfiguration/networking/v1alpha3/virtualservice.go
index 7a03724f..0ddf1dc0 100644
--- a/client-go/pkg/applyconfiguration/networking/v1alpha3/virtualservice.go
+++ b/client-go/pkg/applyconfiguration/networking/v1alpha3/virtualservice.go
@@ -19,10 +19,9 @@
 package v1alpha3
 
 import (
-       v1 "client-go/pkg/applyconfiguration/meta/v1"
-
        v1alpha1 "github.com/apache/dubbo-kubernetes/api/meta/v1alpha1"
        v1alpha3 "github.com/apache/dubbo-kubernetes/api/networking/v1alpha3"
+       v1 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/meta/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        types "k8s.io/apimachinery/pkg/types"
 )
diff --git a/client-go/pkg/applyconfiguration/utils.go 
b/client-go/pkg/applyconfiguration/utils.go
index bdb7f6ef..72c63397 100644
--- a/client-go/pkg/applyconfiguration/utils.go
+++ b/client-go/pkg/applyconfiguration/utils.go
@@ -19,10 +19,9 @@
 package applyconfiguration
 
 import (
-       metav1 "client-go/pkg/applyconfiguration/meta/v1"
-       networkingv1alpha3 
"client-go/pkg/applyconfiguration/networking/v1alpha3"
-
        v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       metav1 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/meta/v1"
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/networking/v1alpha3"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        schema "k8s.io/apimachinery/pkg/runtime/schema"
 )
diff --git a/client-go/pkg/clientset/versioned/clientset.gen.go 
b/client-go/pkg/clientset/versioned/clientset.gen.go
index ef865ef3..fa3634aa 100644
--- a/client-go/pkg/clientset/versioned/clientset.gen.go
+++ b/client-go/pkg/clientset/versioned/clientset.gen.go
@@ -19,10 +19,10 @@
 package versioned
 
 import (
-       networkingv1alpha3 
"client-go/pkg/clientset/versioned/typed/networking/v1alpha3"
        "fmt"
        "net/http"
 
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/typed/networking/v1alpha3"
        discovery "k8s.io/client-go/discovery"
        rest "k8s.io/client-go/rest"
        flowcontrol "k8s.io/client-go/util/flowcontrol"
diff --git a/client-go/pkg/clientset/versioned/fake/clientset_generated.gen.go 
b/client-go/pkg/clientset/versioned/fake/clientset_generated.gen.go
index f468bcf5..c3d87b57 100644
--- a/client-go/pkg/clientset/versioned/fake/clientset_generated.gen.go
+++ b/client-go/pkg/clientset/versioned/fake/clientset_generated.gen.go
@@ -19,10 +19,9 @@
 package fake
 
 import (
-       clientset "client-go/pkg/clientset/versioned"
-       networkingv1alpha3 
"client-go/pkg/clientset/versioned/typed/networking/v1alpha3"
-       fakenetworkingv1alpha3 
"client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake"
-
+       clientset 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned"
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/typed/networking/v1alpha3"
+       fakenetworkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/watch"
        "k8s.io/client-go/discovery"
diff --git 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/destinationrule.gen.go
 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/destinationrule.gen.go
index 7534b978..a9359424 100644
--- 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/destinationrule.gen.go
+++ 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/destinationrule.gen.go
@@ -19,14 +19,14 @@
 package v1alpha3
 
 import (
-       networkingv1alpha3 
"client-go/pkg/applyconfiguration/networking/v1alpha3"
-       scheme "client-go/pkg/clientset/versioned/scheme"
        "context"
        json "encoding/json"
        "fmt"
        "time"
 
        v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/networking/v1alpha3"
+       scheme 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/scheme"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        types "k8s.io/apimachinery/pkg/types"
        watch "k8s.io/apimachinery/pkg/watch"
diff --git 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_destinationrule.gen.go
 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_destinationrule.gen.go
index 1940f803..cba0c365 100644
--- 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_destinationrule.gen.go
+++ 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_destinationrule.gen.go
@@ -19,12 +19,12 @@
 package fake
 
 import (
-       networkingv1alpha3 
"client-go/pkg/applyconfiguration/networking/v1alpha3"
        "context"
        json "encoding/json"
        "fmt"
 
        v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/networking/v1alpha3"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        labels "k8s.io/apimachinery/pkg/labels"
        types "k8s.io/apimachinery/pkg/types"
diff --git 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_networking_client.gen.go
 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_networking_client.gen.go
index e9892b6a..b1e9dd91 100644
--- 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_networking_client.gen.go
+++ 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_networking_client.gen.go
@@ -19,8 +19,7 @@
 package fake
 
 import (
-       v1alpha3 "client-go/pkg/clientset/versioned/typed/networking/v1alpha3"
-
+       v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/typed/networking/v1alpha3"
        rest "k8s.io/client-go/rest"
        testing "k8s.io/client-go/testing"
 )
diff --git 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_virtualservice.gen.go
 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_virtualservice.gen.go
index b3aca229..532ac7f6 100644
--- 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_virtualservice.gen.go
+++ 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/fake/fake_virtualservice.gen.go
@@ -19,12 +19,12 @@
 package fake
 
 import (
-       networkingv1alpha3 
"client-go/pkg/applyconfiguration/networking/v1alpha3"
        "context"
        json "encoding/json"
        "fmt"
 
        v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/networking/v1alpha3"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        labels "k8s.io/apimachinery/pkg/labels"
        types "k8s.io/apimachinery/pkg/types"
diff --git 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/networking_client.gen.go
 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/networking_client.gen.go
index c8455559..7f9ae84d 100644
--- 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/networking_client.gen.go
+++ 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/networking_client.gen.go
@@ -19,10 +19,10 @@
 package v1alpha3
 
 import (
-       "client-go/pkg/clientset/versioned/scheme"
        "net/http"
 
        v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/scheme"
        rest "k8s.io/client-go/rest"
 )
 
diff --git 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/virtualservice.gen.go
 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/virtualservice.gen.go
index 5b6490b3..c40251c8 100644
--- 
a/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/virtualservice.gen.go
+++ 
b/client-go/pkg/clientset/versioned/typed/networking/v1alpha3/virtualservice.gen.go
@@ -19,14 +19,14 @@
 package v1alpha3
 
 import (
-       networkingv1alpha3 
"client-go/pkg/applyconfiguration/networking/v1alpha3"
-       scheme "client-go/pkg/clientset/versioned/scheme"
        "context"
        json "encoding/json"
        "fmt"
        "time"
 
        v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/applyconfiguration/networking/v1alpha3"
+       scheme 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned/scheme"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        types "k8s.io/apimachinery/pkg/types"
        watch "k8s.io/apimachinery/pkg/watch"
diff --git a/client-go/pkg/informers/externalversions/factory.gen.go 
b/client-go/pkg/informers/externalversions/factory.gen.go
index 6b1d6094..43996799 100644
--- a/client-go/pkg/informers/externalversions/factory.gen.go
+++ b/client-go/pkg/informers/externalversions/factory.gen.go
@@ -19,13 +19,13 @@
 package externalversions
 
 import (
-       versioned "client-go/pkg/clientset/versioned"
-       internalinterfaces 
"client-go/pkg/informers/externalversions/internalinterfaces"
-       networking "client-go/pkg/informers/externalversions/networking"
        reflect "reflect"
        sync "sync"
        time "time"
 
+       versioned 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned"
+       internalinterfaces 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/internalinterfaces"
+       networking 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/networking"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        runtime "k8s.io/apimachinery/pkg/runtime"
        schema "k8s.io/apimachinery/pkg/runtime/schema"
diff --git 
a/client-go/pkg/informers/externalversions/internalinterfaces/factory_interfaces.gen.go
 
b/client-go/pkg/informers/externalversions/internalinterfaces/factory_interfaces.gen.go
index 31e432a2..559e3a22 100644
--- 
a/client-go/pkg/informers/externalversions/internalinterfaces/factory_interfaces.gen.go
+++ 
b/client-go/pkg/informers/externalversions/internalinterfaces/factory_interfaces.gen.go
@@ -19,9 +19,9 @@
 package internalinterfaces
 
 import (
-       versioned "client-go/pkg/clientset/versioned"
        time "time"
 
+       versioned 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        runtime "k8s.io/apimachinery/pkg/runtime"
        cache "k8s.io/client-go/tools/cache"
diff --git 
a/client-go/pkg/informers/externalversions/networking/interface.gen.go 
b/client-go/pkg/informers/externalversions/networking/interface.gen.go
index 4520be60..097be2c3 100644
--- a/client-go/pkg/informers/externalversions/networking/interface.gen.go
+++ b/client-go/pkg/informers/externalversions/networking/interface.gen.go
@@ -19,8 +19,8 @@
 package networking
 
 import (
-       internalinterfaces 
"client-go/pkg/informers/externalversions/internalinterfaces"
-       v1alpha3 "client-go/pkg/informers/externalversions/networking/v1alpha3"
+       internalinterfaces 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/internalinterfaces"
+       v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/networking/v1alpha3"
 )
 
 // Interface provides access to each of this group's versions.
diff --git 
a/client-go/pkg/informers/externalversions/networking/v1alpha3/destinationrule.gen.go
 
b/client-go/pkg/informers/externalversions/networking/v1alpha3/destinationrule.gen.go
index cc6b46b9..fd494c0d 100644
--- 
a/client-go/pkg/informers/externalversions/networking/v1alpha3/destinationrule.gen.go
+++ 
b/client-go/pkg/informers/externalversions/networking/v1alpha3/destinationrule.gen.go
@@ -19,13 +19,13 @@
 package v1alpha3
 
 import (
-       versioned "client-go/pkg/clientset/versioned"
-       internalinterfaces 
"client-go/pkg/informers/externalversions/internalinterfaces"
-       v1alpha3 "client-go/pkg/listers/networking/v1alpha3"
        "context"
        time "time"
 
        networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       versioned 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned"
+       internalinterfaces 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/internalinterfaces"
+       v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/listers/networking/v1alpha3"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        runtime "k8s.io/apimachinery/pkg/runtime"
        watch "k8s.io/apimachinery/pkg/watch"
diff --git 
a/client-go/pkg/informers/externalversions/networking/v1alpha3/interface.gen.go 
b/client-go/pkg/informers/externalversions/networking/v1alpha3/interface.gen.go
index f4fe2867..7068529f 100644
--- 
a/client-go/pkg/informers/externalversions/networking/v1alpha3/interface.gen.go
+++ 
b/client-go/pkg/informers/externalversions/networking/v1alpha3/interface.gen.go
@@ -19,7 +19,7 @@
 package v1alpha3
 
 import (
-       internalinterfaces 
"client-go/pkg/informers/externalversions/internalinterfaces"
+       internalinterfaces 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/internalinterfaces"
 )
 
 // Interface provides access to all the informers in this group version.
diff --git 
a/client-go/pkg/informers/externalversions/networking/v1alpha3/virtualservice.gen.go
 
b/client-go/pkg/informers/externalversions/networking/v1alpha3/virtualservice.gen.go
index f37e31a7..1eb89972 100644
--- 
a/client-go/pkg/informers/externalversions/networking/v1alpha3/virtualservice.gen.go
+++ 
b/client-go/pkg/informers/externalversions/networking/v1alpha3/virtualservice.gen.go
@@ -19,13 +19,13 @@
 package v1alpha3
 
 import (
-       versioned "client-go/pkg/clientset/versioned"
-       internalinterfaces 
"client-go/pkg/informers/externalversions/internalinterfaces"
-       v1alpha3 "client-go/pkg/listers/networking/v1alpha3"
        "context"
        time "time"
 
        networkingv1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/apis/networking/v1alpha3"
+       versioned 
"github.com/apache/dubbo-kubernetes/client-go/pkg/clientset/versioned"
+       internalinterfaces 
"github.com/apache/dubbo-kubernetes/client-go/pkg/informers/externalversions/internalinterfaces"
+       v1alpha3 
"github.com/apache/dubbo-kubernetes/client-go/pkg/listers/networking/v1alpha3"
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        runtime "k8s.io/apimachinery/pkg/runtime"
        watch "k8s.io/apimachinery/pkg/watch"
diff --git a/tests/loadtest/.gitignore b/tests/loadtest/.gitignore
deleted file mode 100644
index 09460c15..00000000
--- a/tests/loadtest/.gitignore
+++ /dev/null
@@ -1,18 +0,0 @@
-# Binaries
-server
-client
-
-# Generated proto code
-proto/*.pb.go
-proto/*_grpc.pb.go
-
-# IDE
-.idea/
-.vscode/
-*.swp
-*.swo
-
-# OS
-.DS_Store
-Thumbs.db
-
diff --git a/tests/loadtest/Makefile b/tests/loadtest/Makefile
deleted file mode 100644
index 936bdf9c..00000000
--- a/tests/loadtest/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-.PHONY: proto build server client docker clean test
-
-# Generate proto code
-proto:
-       cd proto && chmod +x gen.sh && ./gen.sh
-
-# Download dependencies
-deps:
-       go mod download
-       go mod tidy
-
-# Build server to bin/
-server: proto deps
-       mkdir -p bin
-       CGO_ENABLED=0 go build -buildvcs=false -o bin/server ./server
-
-# Build client to bin/
-client: proto deps
-       mkdir -p bin
-       CGO_ENABLED=0 go build -buildvcs=false -o bin/client ./client
-
-# Build both
-build: server client
-
-# Build for specific platform
-build-linux-arm64:
-       mkdir -p bin
-       CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -buildvcs=false -o 
bin/server ./server
-       CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -buildvcs=false -o 
bin/client ./client
-
-# Build Docker images
-docker:
-       docker build -t loadtest-server:latest .
-       docker build -t loadtest-client:latest .
-
-# Clean build artifacts
-clean:
-       rm -rf bin
-       rm -f server client
-       rm -f proto/*.pb.go
-       rm -f proto/*_grpc.pb.go
-
-# Run tests locally (requires servers to be running)
-test-baseline:
-       ./client -target=localhost:8080 -mode=baseline -qps=10 -duration=10s
-
-test-envoy:
-       ./client -target=localhost:8080 -mode=envoy -qps=10 -duration=10s
-
-test-xds:
-       ./client -target=xds:///localhost:8080 -mode=xds -qps=10 -duration=10s
-
-# All tests
-test: test-baseline test-envoy test-xds
-
diff --git a/tests/loadtest/README.md b/tests/loadtest/README.md
deleted file mode 100644
index 9498dc78..00000000
--- a/tests/loadtest/README.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# Load Test Guide
-
-## Test Modes
-
-- **Baseline mode**: Can be tested directly (no control plane required)
-- **Envoy mode**: Requires Istio control plane
-- **xDS mode**: Requires Dubbo control plane (dubbod)
-
-## Quick Start
-
-### 1. Create Namespace
-
-```bash
-kubectl create ns loadtest
-```
-
-### 2. Configure and Deploy
-
-Edit `k8s/loadtest.yaml` to set the desired mode, then apply:
-
-```bash
-kubectl apply -f k8s/loadtest.yaml
-```
-
-#### Baseline Mode
-
-No annotations needed. Set mode to `baseline` in both server and client.
-
-#### Envoy Mode
-
-Requires Istio control plane. Add annotation and set mode:
-
-```yaml
-annotations:
-  sidecar.istio.io/inject: "true"
-```
-
-Set mode to `envoy` in both server and client.
-
-#### xDS Mode
-
-Requires Dubbo control plane. Add annotations and set mode:
-
-```yaml
-annotations:
-  proxyless.dubbo.apache.org/inject: "true"
-  inject.dubbo.apache.org/templates: grpc-agent
-```
-
-Set mode to `xds` in both server and client. Client target should use 
`xds:///` scheme.
-
-### 3. View Results
-
-```bash
-# Wait for server ready
-kubectl rollout status deployment/loadtest-server -n loadtest --timeout=120s
-
-# View server logs
-kubectl logs -l app=loadtest-server -n loadtest -f
-
-# View client logs (test results)
-kubectl logs -l app=loadtest-client -n loadtest -f
-```
-
-## Verify Injection
-
-Check pod containers:
-
-```bash
-kubectl get pod -l app=loadtest-server -n loadtest -o 
jsonpath='{.items[0].spec.containers[*].name}'
-```
-
-- **Baseline**: `server` (1 container)
-- **Envoy**: `server istio-proxy` (2 containers)
-- **xDS**: `server dubbo-proxy` (2 containers)
-
-## Test Configuration
-
-Default parameters in `k8s/loadtest.yaml`:
-- QPS: 100 requests/second
-- Duration: 60s
-- Connections: 4
-- Payload: 0 bytes
-
-## Common Issues
-
-**Injection not working**: Verify control plane is installed and 
MutatingWebhookConfiguration exists.
-
-**Connection refused**: Check server pod status and logs.
-
-**xDS connection timeout**: Verify dubbo-proxy sidecar is running and 
bootstrap file exists at `/etc/dubbo/proxy/grpc-bootstrap.json`.
-
-## Cleanup
-
-```bash
-kubectl delete -f k8s/loadtest.yaml
-```
-
-## Results
-
-See [RESULTS.md](RESULTS.md) for detailed performance comparison.
diff --git a/tests/loadtest/RESULTS.md b/tests/loadtest/RESULTS.md
deleted file mode 100644
index d75a1f4e..00000000
--- a/tests/loadtest/RESULTS.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# Load Test Results Comparison
-
-## Test Results Summary
-
-```
-Load Test Results Comparison
-├── Baseline Mode
-│   ├── Duration: 1m0.008528758s
-│   ├── Total Requests: 22,285
-│   ├── Successful: 22,285
-│   ├── Errors: 0
-│   ├── Average QPS: 371.36
-│   └── Latency Percentiles
-│       ├── P50:  600.411µs
-│       ├── P90:  1.102656ms
-│       ├── P95:  1.369779ms
-│       ├── P99:  2.599231ms
-│       └── P99.9: 25.780049ms
-│
-├── xDS Mode
-│   ├── Duration: 1m30.976317937s (includes 30s connection setup)
-│   ├── Total Requests: 23,920
-│   ├── Successful: 23,920
-│   ├── Errors: 0
-│   ├── Average QPS: 262.93
-│   └── Latency Percentiles
-│       ├── P50:  547.081µs
-│       ├── P90:  1.05883ms
-│       ├── P95:  1.333871ms
-│       ├── P99:  2.521575ms
-│       └── P99.9: 8.311473ms
-│
-└── Envoy Mode
-    ├── Duration: 1m0.009001221s
-    ├── Total Requests: 22,254
-    ├── Successful: 22,254
-    ├── Errors: 0
-    ├── Average QPS: 370.84
-    └── Latency Percentiles
-        ├── P50:  2.439575ms
-        ├── P90:  3.888403ms
-        ├── P95:  4.390359ms
-        ├── P99:  7.067849ms
-        └── P99.9: 41.936625ms
-```
-
-## Performance Comparison
-
-### QPS Comparison
-```
-Baseline:  ████████████████████████████████████████ 371.36 QPS
-Envoy:     ████████████████████████████████████████ 370.84 QPS
-xDS:       ████████████████████████████████████     262.93 QPS
-```
-
-### Latency Comparison (P50)
-```
-Baseline:  ████ 600.411µs
-xDS:       ████ 547.081µs
-Envoy:     ████████████ 2.439575ms
-```
-
-### Latency Comparison (P99)
-```
-Baseline:  ████████ 2.599231ms
-xDS:       ████████ 2.521575ms
-Envoy:     ████████████████████ 7.067849ms
-```
-
-### Latency Comparison (P99.9)
-```
-xDS:       ████ 8.311473ms
-Baseline:  ████████████████████████ 25.780049ms
-Envoy:     ████████████████████████████████████████████████ 41.936625ms
-```
-
-## Key Observations
-
-1. **QPS Performance**
-   - Baseline and Envoy modes achieve similar QPS (~371 QPS)
-   - xDS mode has lower QPS (262.93 QPS) due to connection setup overhead
-
-2. **Latency (P50/P99)**
-   - xDS mode has the lowest latency at P50 (547µs)
-   - Baseline and xDS have similar P99 latency (~2.5ms)
-   - Envoy mode has higher latency (2.4ms P50, 7ms P99)
-
-3. **Tail Latency (P99.9)**
-   - xDS mode has the best tail latency (8.3ms)
-   - Baseline mode has moderate tail latency (25.8ms)
-   - Envoy mode has the highest tail latency (41.9ms)
-
-4. **Connection Setup**
-   - xDS mode requires ~30 seconds for connection establishment
-   - Baseline and Envoy modes start immediately
-
-## Test Configuration
-
-- **QPS**: 100 requests/second per connection
-- **Connections**: 4 concurrent connections
-- **Duration**: 60 seconds (actual test time)
-- **Payload**: 0 bytes
-
-## Summary
-- Highest Throughput: Baseline / Envoy
-- Lowest Latency: xDS
-- Most Balanced Overall Performance: xDS (when ignoring startup overhead)
-
-The Baseline mode represents the raw performance upper bound, while the xDS 
mode delivers the best latency and overall efficiency in a real service mesh 
environment.
diff --git a/tests/loadtest/docker/dockerfile.client 
b/tests/loadtest/docker/dockerfile.client
deleted file mode 100644
index ff30aad1..00000000
--- a/tests/loadtest/docker/dockerfile.client
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM gcr.io/distroless/static:debug
-COPY bin/client /usr/local/bin/client
-USER 9999:9999
-ENTRYPOINT ["/usr/local/bin/client"]
diff --git a/tests/loadtest/docker/dockerfile.server 
b/tests/loadtest/docker/dockerfile.server
deleted file mode 100644
index 5f4e506c..00000000
--- a/tests/loadtest/docker/dockerfile.server
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM gcr.io/distroless/static:debug
-COPY bin/server /usr/local/bin/server
-USER 9999:9999
-ENTRYPOINT ["/usr/local/bin/server"]
diff --git a/tests/loadtest/go.sum b/tests/loadtest/go.sum
deleted file mode 100644
index e69de29b..00000000
diff --git a/tests/loadtest/k8s/loadtest.yaml b/tests/loadtest/k8s/loadtest.yaml
deleted file mode 100644
index 2c316aeb..00000000
--- a/tests/loadtest/k8s/loadtest.yaml
+++ /dev/null
@@ -1,180 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Load Test Server Deployment
-# Supports three test modes:
-#   - baseline: Regular gRPC without any service mesh (no annotations needed)
-#   - envoy: Standard gRPC with Istio Envoy sidecar proxy (add 
sidecar.istio.io/inject: "true")
-#   - xds: Proxyless gRPC using xDS resolver (add 
proxyless.dubbo.apache.org/inject: "true")
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: loadtest-server
-  namespace: loadtest
-  labels:
-    app: loadtest-server
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: loadtest-server
-  template:
-    metadata:
-      labels:
-        app: loadtest-server
-      annotations:
-        # Mode switching guide:
-        # Baseline mode: Comment out or remove all annotations (no sidecar 
injection)
-        # Envoy mode: Uncomment the following line to enable Istio sidecar 
injection
-        # sidecar.istio.io/inject: "true"
-        # xDS mode: Uncomment the following annotations to enable Dubbo 
proxyless injection
-        # proxyless.dubbo.apache.org/inject: "true"
-        # inject.dubbo.apache.org/templates: grpc-agent
-    spec:
-      containers:
-      - name: server
-        # Replace with your own image containing the loadtest server binary
-        image: mfordjody/loadtest-server:dev-debug
-        imagePullPolicy: Always
-        args:
-        - "-port=8080"
-        # Server mode: baseline, envoy, or xds
-        # baseline: Regular gRPC server without xDS (no control plane needed)
-        # envoy: Regular gRPC server (Envoy sidecar handles routing, requires 
Istio)
-        # xds: xDS-enabled gRPC server using xds.NewGRPCServer() (requires 
Dubbo control plane)
-        - "-mode=baseline"
-        env:
-        - name: TEST_MODE
-          # Change to: baseline, envoy, or xds (must match args mode above)
-          value: "baseline"
-        # Note: args use literal values, not env var substitution. Update args 
when changing TEST_MODE.
-        - name: INSTANCE_IP
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: status.podIP
-        resources:
-          requests:
-            cpu: "100m"
-            memory: "128Mi"
-          limits:
-            cpu: "500m"
-            memory: "512Mi"
-        ports:
-        - containerPort: 8080
-          protocol: TCP
-          name: grpc
-        readinessProbe:
-          tcpSocket:
-            port: 8080
-          initialDelaySeconds: 2
-          periodSeconds: 3
-          timeoutSeconds: 1
-          successThreshold: 1
-          failureThreshold: 3
-        livenessProbe:
-          tcpSocket:
-            port: 8080
-          initialDelaySeconds: 10
-          periodSeconds: 10
-          timeoutSeconds: 1
-          successThreshold: 1
-          failureThreshold: 3
-        startupProbe:
-          tcpSocket:
-            port: 8080
-          initialDelaySeconds: 0
-          periodSeconds: 1
-          timeoutSeconds: 1
-          successThreshold: 1
-          failureThreshold: 30
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loadtest-server
-  namespace: loadtest
-  labels:
-    app: loadtest-server
-spec:
-  selector:
-    app: loadtest-server
-  type: ClusterIP
-  ports:
-  - name: grpc
-    port: 8080
-    targetPort: 8080
-    protocol: TCP
----
-# Load Test Client Job
-# Runs load test against the server with configurable parameters
-# Supports three test modes matching the server mode
-# Note: This Job will wait for the server to be ready before starting the test
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: loadtest-client
-  namespace: loadtest
-spec:
-  template:
-    metadata:
-      labels:
-        app: loadtest-client
-      annotations:
-        # Mode switching guide:
-        # Baseline mode: Comment out or remove all annotations (no sidecar 
injection)
-        # Envoy mode: Uncomment the following line to enable Istio sidecar 
injection
-        # sidecar.istio.io/inject: "true"
-        # xDS mode: Uncomment the following annotations to enable Dubbo 
proxyless injection
-        # proxyless.dubbo.apache.org/inject: "true"
-        # inject.dubbo.apache.org/templates: grpc-agent
-    spec:
-      containers:
-      - name: client
-        # Replace with your own image containing the loadtest client binary
-        image: mfordjody/loadtest-client:dev-debug
-        imagePullPolicy: Always
-        args:
-        # Target server address
-        # baseline/envoy mode: use regular service address
-        # xds mode: use xds:/// scheme (e.g., 
xds:///loadtest-server.loadtest.svc.cluster.local:8080)
-        - "-target=loadtest-server.loadtest.svc.cluster.local:8080"
-        # Client mode: baseline, envoy, or xds (must match server mode)
-        # baseline: Regular gRPC client connection (no control plane needed)
-        # envoy: Regular gRPC client (traffic goes through Envoy sidecar, 
requires Istio)
-        # xds: xDS-enabled gRPC client using xds:/// scheme (requires Dubbo 
control plane)
-        - "-mode=baseline"
-        - "-qps=100"        # Queries per second
-        - "-duration=60s"    # Test duration
-        - "-connections=4"   # Number of concurrent connections
-        env:
-        - name: TEST_MODE
-          # Change to: baseline, envoy, or xds (must match args mode above)
-          value: "baseline"
-        # Note: args use literal values, not env var substitution. Update args 
when changing TEST_MODE or TARGET.
-        - name: INSTANCE_IP
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: status.podIP
-        resources:
-          requests:
-            cpu: "100m"
-            memory: "128Mi"
-          limits:
-            cpu: "500m"
-            memory: "512Mi"
-      restartPolicy: Never
-  backoffLimit: 1
diff --git a/tests/loadtest/proto/gen.sh b/tests/loadtest/proto/gen.sh
deleted file mode 100755
index 946c8ded..00000000
--- a/tests/loadtest/proto/gen.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -e
-
-SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-cd "$SCRIPT_DIR"
-
-# Check if protoc is installed
-if ! command -v protoc &> /dev/null; then
-    echo "Error: protoc is not installed. Please install Protocol Buffers 
compiler."
-    exit 1
-fi
-
-# Check if protoc-gen-go is installed
-if ! command -v protoc-gen-go &> /dev/null; then
-    echo "Installing protoc-gen-go..."
-    go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
-fi
-
-# Check if protoc-gen-go-grpc is installed
-if ! command -v protoc-gen-go-grpc &> /dev/null; then
-    echo "Installing protoc-gen-go-grpc..."
-    go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
-fi
-
-echo "Generating Go code from proto files..."
-
-protoc \
-    --go_out=. \
-    --go_opt=paths=source_relative \
-    --go-grpc_out=. \
-    --go-grpc_opt=paths=source_relative \
-    loadtest.proto
-
-echo "Proto code generation completed!"
-
diff --git a/tests/loadtest/proto/loadtest.proto 
b/tests/loadtest/proto/loadtest.proto
deleted file mode 100644
index 396d18f9..00000000
--- a/tests/loadtest/proto/loadtest.proto
+++ /dev/null
@@ -1,44 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements.  See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License.  You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package loadtest;
-
-option go_package = "github.com/apache/dubbo-kubernetes/test/loadtest/proto";
-
-// LoadTestService provides RPC methods for load testing
-service LoadTestService {
-  // Ping is a simple request/response method for latency testing
-  rpc Ping(PingRequest) returns (PingResponse);
-  
-  // StreamPing streams responses for throughput testing
-  rpc StreamPing(PingRequest) returns (stream PingResponse);
-}
-
-message PingRequest {
-  int64 sequence = 1;        // Request sequence number
-  int64 timestamp = 2;        // Client timestamp (nanoseconds)
-  bytes payload = 3;          // Optional payload for size testing
-}
-
-message PingResponse {
-  int64 sequence = 1;        // Echoed sequence number
-  int64 client_timestamp = 2; // Original client timestamp
-  int64 server_timestamp = 3; // Server timestamp (nanoseconds)
-  string hostname = 4;        // Server hostname
-  bytes payload = 5;          // Echoed payload
-}
-
diff --git a/tools/metadata/main.go b/tools/annotations_prep/main.go
similarity index 93%
rename from tools/metadata/main.go
rename to tools/annotations_prep/main.go
index 04aa67ca..d3726e92 100644
--- a/tools/metadata/main.go
+++ b/tools/annotations_prep/main.go
@@ -1,3 +1,19 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package main
 
 import (
diff --git a/tools/build-tools/docker/Dockerfile 
b/tools/build-tools/docker/Dockerfile
index b3ba0161..ef8ca32e 100644
--- a/tools/build-tools/docker/Dockerfile
+++ b/tools/build-tools/docker/Dockerfile
@@ -1,8 +1,5 @@
 # hadolint global ignore=SC2086
 
-################
-# Binary tools
-################
 ARG GOLANG_IMAGE=golang:1.24-bookworm
 # hadolint ignore=DL3006
 FROM ${GOLANG_IMAGE} AS binary_tools_context_base
@@ -48,7 +45,6 @@ RUN rm -fr /usr/local/go/api
 RUN rm -fr /usr/local/go/bin/godoc
 RUN rm -fr /usr/local/go/bin/gofmt
 
-# Go tools: part 1 - Kubernetes code generators
 FROM binary_tools_context_base AS go_tools_1
 
 # Build and install Kubernetes code generators
@@ -63,7 +59,6 @@ RUN --mount=type=cache,target=/tmp/go/pkg/mod \
     
k8s.io/code-generator/cmd/deepcopy-gen@kubernetes-${K8S_CODE_GENERATOR_VERSION} 
\
     
k8s.io/code-generator/cmd/go-to-protobuf@kubernetes-${K8S_CODE_GENERATOR_VERSION}
 
-# Go tools: part 2 - Protobuf generators and Dubbo Kubernetes tools
 FROM binary_tools_context_base AS go_tools_2
 
 # Build Dubbo Kubernetes kubetype-gen tool from source
@@ -75,33 +70,6 @@ FROM binary_tools_context_base AS go_tools_2
 # Run: cd /path/to/dubbo-kubernetes && nerdctl build -f 
tools/build-tools/docker/Dockerfile -t build-tools .
 COPY --chmod=755 kubetype-gen /tmp/go/bin/kubetype-gen
 
-# Original git clone logic (commented out for local testing)
-# TODO: Uncomment after testing
-# # Clone the repository and checkout the specified version
-# # Remove any existing directory to ensure we get the latest code
-# RUN --mount=type=cache,target=/tmp/go/pkg/mod \
-#     --mount=type=cache,target=/root/.cache/go-build \
-#     rm -rf /tmp/dubbo-kubernetes && \
-#     if [ "${DUBBO_KUBERNETES_VERSION}" != "main" ]; then \
-#         git clone --depth=1 --single-branch --branch 
"${DUBBO_KUBERNETES_VERSION}" \
-#         https://github.com/apache/dubbo-kubernetes.git /tmp/dubbo-kubernetes 
2>/dev/null || \
-#         (git clone --depth=1 https://github.com/apache/dubbo-kubernetes.git 
/tmp/dubbo-kubernetes && \
-#          cd /tmp/dubbo-kubernetes && git checkout 
"${DUBBO_KUBERNETES_VERSION}"); \
-#     else \
-#         git clone --depth=1 --single-branch --branch main \
-#         https://github.com/apache/dubbo-kubernetes.git 
/tmp/dubbo-kubernetes; \
-#     fi && \
-#     cd /tmp/dubbo-kubernetes && \
-#     test -f go.mod && test -d tools/cmd/kubetype-gen || \
-#     (echo "Error: Required files not found. Listing:" && ls -la && ls -la 
tools/cmd/ 2>&1 && exit 1) && \
-#     go mod download && \
-#     CGO_ENABLED=0 go install -ldflags="-extldflags -static -s -w" \
-#     ./tools/cmd/kubetype-gen
-
-#############
-# Base OS
-#############
-
 FROM ubuntu:noble AS base_os_context
 
 ENV DEBIAN_FRONTEND=noninteractive
@@ -123,7 +91,6 @@ RUN rm -rf /var/lib/apt/lists/* \
   && rm -fr /usr/share/man \
   && rm -fr /tmp/*
 
-# Prepare final output image
 FROM scratch AS build_tools
 
 # Version from build arguments
diff --git a/tools/cmd/kubetype-gen/boilerplate.go.txt 
b/tools/cmd/kubetype-gen/boilerplate.go.txt
index 969ee92e..4f8c0261 100644
--- a/tools/cmd/kubetype-gen/boilerplate.go.txt
+++ b/tools/cmd/kubetype-gen/boilerplate.go.txt
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/cmd/kubetype-gen/generators/naming.go 
b/tools/cmd/kubetype-gen/generators/naming.go
index b06a884a..e6c7e9ca 100644
--- a/tools/cmd/kubetype-gen/generators/naming.go
+++ b/tools/cmd/kubetype-gen/generators/naming.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/cmd/kubetype-gen/generators/package.go 
b/tools/cmd/kubetype-gen/generators/package.go
index 55b4adab..d1b17537 100644
--- a/tools/cmd/kubetype-gen/generators/package.go
+++ b/tools/cmd/kubetype-gen/generators/package.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/cmd/kubetype-gen/generators/register.go 
b/tools/cmd/kubetype-gen/generators/register.go
index 8b2169bf..1b673247 100644
--- a/tools/cmd/kubetype-gen/generators/register.go
+++ b/tools/cmd/kubetype-gen/generators/register.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/cmd/kubetype-gen/generators/types.go 
b/tools/cmd/kubetype-gen/generators/types.go
index b4a3f484..921aa15d 100644
--- a/tools/cmd/kubetype-gen/generators/types.go
+++ b/tools/cmd/kubetype-gen/generators/types.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/cmd/kubetype-gen/main.go b/tools/cmd/kubetype-gen/main.go
index 8a1852ff..4b42d19f 100644
--- a/tools/cmd/kubetype-gen/main.go
+++ b/tools/cmd/kubetype-gen/main.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/cmd/kubetype-gen/metadata/metadata.go 
b/tools/cmd/kubetype-gen/metadata/metadata.go
index 2b77c0c1..56e5607d 100644
--- a/tools/cmd/kubetype-gen/metadata/metadata.go
+++ b/tools/cmd/kubetype-gen/metadata/metadata.go
@@ -12,7 +12,6 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-
 package metadata
 
 import (
diff --git a/tools/cmd/kubetype-gen/scanner/scanner.go 
b/tools/cmd/kubetype-gen/scanner/scanner.go
index 154be885..9252b0f7 100644
--- a/tools/cmd/kubetype-gen/scanner/scanner.go
+++ b/tools/cmd/kubetype-gen/scanner/scanner.go
@@ -1,3 +1,4 @@
+//
 // Licensed to the Apache Software Foundation (ASF) under one or more
 // contributor license agreements.  See the NOTICE file distributed with
 // this work for additional information regarding copyright ownership.
@@ -5,7 +6,7 @@
 // (the "License"); you may not use this file except in compliance with
 // the License.  You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/tools/scripts/setup_env.sh b/tools/scripts/setup_env.sh
index f23365a9..6b571534 100755
--- a/tools/scripts/setup_env.sh
+++ b/tools/scripts/setup_env.sh
@@ -25,9 +25,7 @@ fi
 
 LOCAL_OS=$(uname)
 
-# Pass environment set target operating-system to build system
 if [[ ${TARGET_OS} ]]; then
-    # Target explicitly set
     :
 elif [[ $LOCAL_OS == Linux ]]; then
     TARGET_OS=linux
@@ -54,15 +52,6 @@ if [[ "${IMAGE_NAME:-}" == "" ]]; then
   IMAGE_NAME=build-tools
 fi
 
-#TOOLS_REGISTRY_PROVIDER=${TOOLS_REGISTRY_PROVIDER:-gcr.io}
-#PROJECT_ID=${PROJECT_ID:-istio-testing}
-#if [[ "${IMAGE_VERSION:-}" == "" ]]; then
-#  IMAGE_VERSION=master-dd350f492cf194be812d6f79d13e450f10b62e94
-#fi
-#if [[ "${IMAGE_NAME:-}" == "" ]]; then
-#  IMAGE_NAME=build-tools
-#fi
-
 CONTAINER_CLI="${CONTAINER_CLI:-docker}"
 
 # Try to use the latest cached image we have. Use at your own risk, may have 
incompatibly-old versions

Reply via email to