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