Skip to content

Commit 49e4c52

Browse files
authored
[discovery] add aggregate and cert controller logic (#792)
1 parent ec34480 commit 49e4c52

File tree

62 files changed

+2079
-74
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+2079
-74
lines changed

dubboctl/pkg/validate/validate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
operator "github.com/apache/dubbo-kubernetes/operator/pkg/apis"
2626
operatorvalidate "github.com/apache/dubbo-kubernetes/operator/pkg/apis/validation"
2727
"github.com/apache/dubbo-kubernetes/pkg/config/validation"
28-
"github.com/apache/dubbo-kubernetes/pkg/util/slices"
28+
"github.com/apache/dubbo-kubernetes/pkg/slices"
2929
"github.com/hashicorp/go-multierror"
3030
"github.com/spf13/cobra"
3131
"io"

go.mod

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ require (
4040
github.com/golang/protobuf v1.5.4
4141
github.com/google/go-cmp v0.7.0
4242
github.com/google/go-containerregistry v0.20.6
43+
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
4344
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2
45+
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
4446
github.com/hashicorp/go-multierror v1.1.1
4547
github.com/heroku/color v0.0.6
4648
github.com/moby/term v0.5.2
@@ -112,10 +114,12 @@ require (
112114
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 // indirect
113115
github.com/aws/smithy-go v1.20.2 // indirect
114116
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230522190001-adf1bafd791a // indirect
117+
github.com/beorn7/perks v1.0.1 // indirect
115118
github.com/blang/semver/v4 v4.0.0 // indirect
116119
github.com/buildpacks/imgutil v0.0.0-20230626185301-726f02e4225c // indirect
117120
github.com/buildpacks/lifecycle v0.17.0 // indirect
118121
github.com/cespare/xxhash v1.1.0 // indirect
122+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
119123
github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 // indirect
120124
github.com/cloudflare/circl v1.3.7 // indirect
121125
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
@@ -203,6 +207,8 @@ require (
203207
github.com/pkoukk/tiktoken-go v0.1.6 // indirect
204208
github.com/planetscale/vtprotobuf v0.6.1-0.20240409071808-615f978279ca // indirect
205209
github.com/prometheus/client_golang v1.23.0 // indirect
210+
github.com/prometheus/client_model v0.6.2 // indirect
211+
github.com/prometheus/common v0.65.0 // indirect
206212
github.com/prometheus/procfs v0.17.0 // indirect
207213
github.com/rivo/tview v0.0.0-20220307222120-9994674d60a8 // indirect
208214
github.com/rivo/uniseg v0.4.7 // indirect

go.sum

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38
186186
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
187187
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
188188
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
189+
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
189190
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls=
190191
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
191192
github.com/containerd/containerd v1.7.27 h1:yFyEyojddO3MIGVER2xJLWoCIn+Up4GaHFquP7hsFII=
@@ -244,7 +245,9 @@ github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf
244245
github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
245246
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
246247
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
248+
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
247249
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
250+
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
248251
github.com/envoyproxy/go-control-plane/envoy v1.32.5-0.20250627145903-197b96a9c7f8 h1:/F9jLyfDeNr4iZxyibtKlZxCDqCFEhoYiLdc9VOZT2E=
249252
github.com/envoyproxy/go-control-plane/envoy v1.32.5-0.20250627145903-197b96a9c7f8/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs=
250253
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
@@ -287,6 +290,7 @@ github.com/go-git/go-git/v5 v5.13.1 h1:DAQ9APonnlvSWpvolXWIuV6Q6zXy2wHbN4cVlNR5Q
287290
github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc=
288291
github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
289292
github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
293+
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
290294
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
291295
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
292296
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
@@ -301,6 +305,7 @@ github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZ
301305
github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0=
302306
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
303307
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
308+
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
304309
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
305310
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
306311
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
@@ -322,6 +327,7 @@ github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+Licev
322327
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
323328
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
324329
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
330+
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
325331
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
326332
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
327333
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
@@ -373,8 +379,12 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
373379
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
374380
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
375381
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
382+
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
383+
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
376384
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0=
377385
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc=
386+
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
387+
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
378388
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
379389
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
380390
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -507,6 +517,7 @@ github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE
507517
github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
508518
github.com/opencontainers/selinux v1.11.1 h1:nHFvthhM0qY8/m+vfhJylliSshm8G1jJ2jDMcgULaH8=
509519
github.com/opencontainers/selinux v1.11.1/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec=
520+
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
510521
github.com/ory/viper v1.7.5 h1:+xVdq7SU3e1vNaCsk/ixsfxE4zylk1TJUiJrY647jUE=
511522
github.com/ory/viper v1.7.5/go.mod h1:ypOuyJmEUb3oENywQZRgeAMwqgOyDqwboO1tj3DjTaM=
512523
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -563,6 +574,7 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG
563574
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
564575
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
565576
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
577+
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
566578
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
567579
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
568580
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
@@ -667,12 +679,15 @@ go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mx
667679
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
668680
go.starlark.net v0.0.0-20230302034142-4b1e35fe2254 h1:Ss6D3hLXTM0KobyBYEAygXzFfGcjnmfEJOBgSbemCtg=
669681
go.starlark.net v0.0.0-20230302034142-4b1e35fe2254/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
682+
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
670683
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
671684
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
672685
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
673686
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
674687
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
675688
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
689+
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
690+
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
676691
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
677692
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
678693
go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE=
@@ -733,6 +748,7 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h
733748
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
734749
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
735750
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
751+
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
736752
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
737753
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
738754
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -794,6 +810,7 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl
794810
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
795811
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
796812
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
813+
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
797814
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
798815
google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE=
799816
google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ=
@@ -803,7 +820,9 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a h1:
803820
google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo=
804821
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
805822
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
823+
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
806824
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
825+
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
807826
google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4=
808827
google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM=
809828
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=

operator/cmd/cluster/manifest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"github.com/apache/dubbo-kubernetes/operator/pkg/render"
2626
"github.com/apache/dubbo-kubernetes/operator/pkg/util/clog"
2727
"github.com/apache/dubbo-kubernetes/pkg/kube"
28-
"github.com/apache/dubbo-kubernetes/pkg/util/slices"
28+
"github.com/apache/dubbo-kubernetes/pkg/slices"
2929
"github.com/spf13/cobra"
3030
"sigs.k8s.io/yaml"
3131
"strings"

operator/pkg/helm/helm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"github.com/apache/dubbo-kubernetes/operator/pkg/manifest"
2424
"github.com/apache/dubbo-kubernetes/operator/pkg/util"
2525
"github.com/apache/dubbo-kubernetes/operator/pkg/values"
26-
"github.com/apache/dubbo-kubernetes/pkg/util/slices"
26+
"github.com/apache/dubbo-kubernetes/pkg/slices"
2727
"helm.sh/helm/v3/pkg/chart"
2828
"helm.sh/helm/v3/pkg/chart/loader"
2929
"helm.sh/helm/v3/pkg/chartutil"

operator/pkg/install/installer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ import (
2929
"github.com/apache/dubbo-kubernetes/operator/pkg/util/progress"
3030
"github.com/apache/dubbo-kubernetes/operator/pkg/values"
3131
"github.com/apache/dubbo-kubernetes/pkg/kube"
32+
"github.com/apache/dubbo-kubernetes/pkg/slices"
3233
"github.com/apache/dubbo-kubernetes/pkg/util/sets"
33-
"github.com/apache/dubbo-kubernetes/pkg/util/slices"
3434
"github.com/hashicorp/go-multierror"
3535
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3636
klabels "k8s.io/apimachinery/pkg/labels"

pkg/config/constants/constants.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,14 @@ const (
3636
CertProviderCustom = "custom"
3737

3838
ThirdPartyJwtPath = "./var/run/secrets/tokens/dubbo-token"
39+
40+
CertProviderKubernetes = "kubernetes"
41+
42+
SailWellKnownDNSCertPath = "./var/run/secrets/dubbod/tls/"
43+
SailWellKnownDNSCaCertPath = "./var/run/secrets/dubbod/ca/"
44+
45+
DefaultSailTLSCert = SailWellKnownDNSCertPath + "tls.crt"
46+
DefaultSailTLSKey = SailWellKnownDNSCertPath + "tls.key"
47+
DefaultSailTLSCaCert = SailWellKnownDNSCaCertPath + "root-cert.pem"
48+
DefaultSailTLSCaCertAlternatePath = SailWellKnownDNSCertPath + "ca.crt"
3949
)

pkg/config/labels/instance.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ package labels
1919

2020
import (
2121
"fmt"
22+
"github.com/apache/dubbo-kubernetes/pkg/slices"
2223
"regexp"
2324
"strings"
2425

2526
"github.com/hashicorp/go-multierror"
2627

2728
"github.com/apache/dubbo-kubernetes/pkg/maps"
28-
"github.com/apache/dubbo-kubernetes/pkg/util/slices"
2929
)
3030

3131
const (

pkg/config/model.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"bytes"
2222
"encoding/json"
2323
"fmt"
24+
"github.com/apache/dubbo-kubernetes/pkg/slices"
2425
"reflect"
2526
"time"
2627

@@ -42,7 +43,6 @@ import (
4243
"github.com/apache/dubbo-kubernetes/pkg/util/gogoprotomarshal"
4344
"github.com/apache/dubbo-kubernetes/pkg/util/protomarshal"
4445
"github.com/apache/dubbo-kubernetes/pkg/util/sets"
45-
"github.com/apache/dubbo-kubernetes/pkg/util/slices"
4646
"github.com/apache/dubbo-kubernetes/sail/pkg/util/protoconv"
4747
"istio.io/api/label"
4848
)

pkg/config/protocol/instance.go

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
package protocol
2+
3+
import "strings"
4+
5+
// Instance defines network protocols for ports
6+
type Instance string
7+
8+
func (i Instance) String() string {
9+
return string(i)
10+
}
11+
12+
const (
13+
// GRPC declares that the port carries gRPC traffic.
14+
GRPC Instance = "GRPC"
15+
// GRPCWeb declares that the port carries gRPC traffic.
16+
GRPCWeb Instance = "GRPC-Web"
17+
// HTTP declares that the port carries HTTP/1.1 traffic.
18+
// Note that HTTP/1.0 or earlier may not be supported by the proxy.
19+
HTTP Instance = "HTTP"
20+
// HTTP_PROXY declares that the port is a generic outbound proxy port.
21+
// Note that this is currently applicable only for defining sidecar egress listeners.
22+
// nolint
23+
HTTP_PROXY Instance = "HTTP_PROXY"
24+
// HTTP2 declares that the port carries HTTP/2 traffic.
25+
HTTP2 Instance = "HTTP2"
26+
// HTTPS declares that the port carries HTTPS traffic.
27+
HTTPS Instance = "HTTPS"
28+
// TCP declares the port uses TCP.
29+
// This is the default protocol for a service port.
30+
TCP Instance = "TCP"
31+
// TLS declares that the port carries TLS traffic.
32+
// TLS traffic is assumed to contain SNI as part of the handshake.
33+
TLS Instance = "TLS"
34+
// UDP declares that the port uses UDP.
35+
// Note that UDP protocol is not currently supported by the proxy.
36+
UDP Instance = "UDP"
37+
// Unsupported - value to signify that the protocol is unsupported.
38+
Unsupported Instance = "UnsupportedProtocol"
39+
)
40+
41+
// Parse from string ignoring case
42+
func Parse(s string) Instance {
43+
switch strings.ToLower(s) {
44+
case "tcp":
45+
return TCP
46+
case "udp":
47+
return UDP
48+
case "grpc":
49+
return GRPC
50+
case "grpc-web":
51+
return GRPCWeb
52+
case "http":
53+
return HTTP
54+
case "http_proxy":
55+
return HTTP_PROXY
56+
case "http2":
57+
return HTTP2
58+
case "https":
59+
return HTTPS
60+
case "tls":
61+
return TLS
62+
}
63+
64+
return Unsupported
65+
}
66+
67+
// IsHTTP2 is true for protocols that use HTTP/2 as transport protocol
68+
func (i Instance) IsHTTP2() bool {
69+
switch i {
70+
case HTTP2, GRPC, GRPCWeb:
71+
return true
72+
default:
73+
return false
74+
}
75+
}
76+
77+
// IsHTTPOrSniffed is true for protocols that use HTTP as transport protocol, or *can* use it if sniffed to be HTTP
78+
func (i Instance) IsHTTPOrSniffed() bool {
79+
return i.IsHTTP() || i.IsUnsupported()
80+
}
81+
82+
// IsHTTP is true for protocols that use HTTP as transport protocol
83+
func (i Instance) IsHTTP() bool {
84+
switch i {
85+
case HTTP, HTTP2, HTTP_PROXY, GRPC, GRPCWeb:
86+
return true
87+
default:
88+
return false
89+
}
90+
}
91+
92+
// IsTCP is true for protocols that use TCP as transport protocol
93+
func (i Instance) IsTCP() bool {
94+
switch i {
95+
case TCP, HTTPS, TLS:
96+
return true
97+
default:
98+
return false
99+
}
100+
}
101+
102+
// IsTLS is true for protocols on top of TLS (e.g. HTTPS)
103+
func (i Instance) IsTLS() bool {
104+
switch i {
105+
case HTTPS, TLS:
106+
return true
107+
default:
108+
return false
109+
}
110+
}
111+
112+
// IsHTTPS is true if protocol is HTTPS
113+
func (i Instance) IsHTTPS() bool {
114+
switch i {
115+
case HTTPS:
116+
return true
117+
default:
118+
return false
119+
}
120+
}
121+
122+
// IsGRPC is true for GRPC protocols.
123+
func (i Instance) IsGRPC() bool {
124+
switch i {
125+
case GRPC, GRPCWeb:
126+
return true
127+
default:
128+
return false
129+
}
130+
}
131+
132+
func (i Instance) IsUnsupported() bool {
133+
return i == Unsupported
134+
}
135+
136+
// AfterTLSTermination returns the protocol that will be used if TLS is terminated on the current protocol.
137+
func (i Instance) AfterTLSTermination() Instance {
138+
switch i {
139+
case HTTPS:
140+
return HTTP
141+
case TLS:
142+
return TCP
143+
default:
144+
return i
145+
}
146+
}

0 commit comments

Comments
 (0)