Skip to content

Commit 5619ffb

Browse files
authored
ShadowLink Boilerplate (#1068)
* initial boilerplate * update based on protobufs * stub out the controller more * Add sync test stub * checkpoint with some testable api interactions * Fix up stuff * stub out the rest of the tests * Fix resource sync * Fix linter errors * regen golden files for operator chart * Add shadow link crd to unit test * Fix non-pluralized CRD name * re-run gen * rename source and destination cluster
1 parent 1888e45 commit 5619ffb

Some content is hidden

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

64 files changed

+5114
-173
lines changed

acceptance/go.mod

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.24.3
55
require (
66
github.com/cucumber/godog v0.14.1
77
github.com/prometheus/common v0.65.0
8-
github.com/redpanda-data/common-go/rpadmin v0.1.14
8+
github.com/redpanda-data/common-go/rpadmin v0.1.17-0.20250918052456-493894730cb7
99
github.com/redpanda-data/redpanda-operator/harpoon v0.0.0-00010101000000-000000000000
1010
github.com/redpanda-data/redpanda-operator/operator v0.0.0-00010101000000-000000000000
1111
github.com/redpanda-data/redpanda-operator/pkg v0.0.0-20250528175436-e8cca0053dc6
@@ -26,12 +26,15 @@ require (
2626
buf.build/gen/go/grpc-ecosystem/grpc-gateway/protocolbuffers/go v1.36.6-20221127060915-a1ecdc58eccd.1 // indirect
2727
buf.build/gen/go/redpandadata/cloud/protocolbuffers/go v1.36.6-20250616170632-3de895655308.1 // indirect
2828
buf.build/gen/go/redpandadata/common/protocolbuffers/go v1.36.6-20250623133515-cbe59d22e104.1 // indirect
29+
buf.build/gen/go/redpandadata/core/connectrpc/go v1.18.1-20250903131725-492a4ada6956.1 // indirect
30+
buf.build/gen/go/redpandadata/core/protocolbuffers/go v1.36.9-20250903131725-492a4ada6956.1 // indirect
2931
cel.dev/expr v0.24.0 // indirect
3032
cloud.google.com/go/auth v0.16.1 // indirect
3133
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
3234
cloud.google.com/go/compute/metadata v0.6.0 // indirect
3335
cloud.google.com/go/iam v1.5.2 // indirect
3436
cloud.google.com/go/secretmanager v1.14.7 // indirect
37+
connectrpc.com/connect v1.18.1 // indirect
3538
dario.cat/mergo v1.0.2 // indirect
3639
emperror.dev/errors v0.8.1 // indirect
3740
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
@@ -267,10 +270,10 @@ require (
267270
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
268271
google.golang.org/api v0.233.0 // indirect
269272
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
270-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect
271-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
273+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 // indirect
274+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 // indirect
272275
google.golang.org/grpc v1.73.0 // indirect
273-
google.golang.org/protobuf v1.36.6 // indirect
276+
google.golang.org/protobuf v1.36.9 // indirect
274277
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
275278
gopkg.in/inf.v0 v0.9.1 // indirect
276279
gopkg.in/yaml.v2 v2.4.0 // indirect

acceptance/go.sum

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ buf.build/gen/go/redpandadata/cloud/protocolbuffers/go v1.36.6-20250616170632-3d
88
buf.build/gen/go/redpandadata/cloud/protocolbuffers/go v1.36.6-20250616170632-3de895655308.1/go.mod h1:RUUH9gPqxuRHYeNMFjrU5hboN4lPAz2kNeOi81gjQcI=
99
buf.build/gen/go/redpandadata/common/protocolbuffers/go v1.36.6-20250623133515-cbe59d22e104.1 h1:H1OQRoy/xuIh3vvAv9Gb59p/ZsrTTQyYxPyMSOQaVlc=
1010
buf.build/gen/go/redpandadata/common/protocolbuffers/go v1.36.6-20250623133515-cbe59d22e104.1/go.mod h1:yA5Jg45dsAoOvAx1XHbDwwcWkkYW568MUeKJsa9bgrY=
11+
buf.build/gen/go/redpandadata/core/connectrpc/go v1.18.1-20250903131725-492a4ada6956.1 h1:ILKCJnvuZt7dVvSrrg96EYHZw+daqVTCj0Wgm+dM1do=
12+
buf.build/gen/go/redpandadata/core/connectrpc/go v1.18.1-20250903131725-492a4ada6956.1/go.mod h1:kc2N3jlUqEZrUEit1SEEgJrFQ14kk4uIzGHd5Wu5tMI=
13+
buf.build/gen/go/redpandadata/core/protocolbuffers/go v1.36.9-20250903131725-492a4ada6956.1 h1:wpCXTU52u2r1XLPsEScI2yZJ5xbxURTJrugu+RflQgE=
14+
buf.build/gen/go/redpandadata/core/protocolbuffers/go v1.36.9-20250903131725-492a4ada6956.1/go.mod h1:oupF1xcfwydaQw7rI2idmWZZG7lF/hTF9V6EWSc/UCg=
1115
buf.build/gen/go/redpandadata/dataplane/connectrpc/go v1.18.1-20250404200318-65f29ddd7b29.1 h1:iIj2C/0IDTFR0JtIgKfFHRtkCIb7YqQEdNylVab2pz0=
1216
buf.build/gen/go/redpandadata/dataplane/connectrpc/go v1.18.1-20250404200318-65f29ddd7b29.1/go.mod h1:72CA7I2EBjkbygOtYfvNpyLwD14RqoMa9vL9SGlWkIk=
1317
buf.build/gen/go/redpandadata/dataplane/protocolbuffers/go v1.36.5-20250404200318-65f29ddd7b29.1 h1:/i5xh4Kk3Vvbvcqyunu9NOdxIU7Mu5EuiYzczjckbgE=
@@ -543,8 +547,8 @@ github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0
543547
github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=
544548
github.com/redpanda-data/common-go/net v0.1.1-0.20240429123545-4da3d2b371f7 h1:MXLdjFdFjOtyuUR4TdVVsqFP8xnru2YDwzH9bJTUr1M=
545549
github.com/redpanda-data/common-go/net v0.1.1-0.20240429123545-4da3d2b371f7/go.mod h1:UJIi/yUxGOBYXUrfUsOkxfYxcb/ll7mZrwae/i+U2kc=
546-
github.com/redpanda-data/common-go/rpadmin v0.1.14 h1:G/rlh9cHsGhTsNpkwrISdpGA8fPZ7ul57rzxbPiJhs0=
547-
github.com/redpanda-data/common-go/rpadmin v0.1.14/go.mod h1:zgE/M2UihQZRdivHfbm4x9Rb3Vm/crO5kiX3GQrxhG4=
550+
github.com/redpanda-data/common-go/rpadmin v0.1.17-0.20250918052456-493894730cb7 h1:RGdPbgiCplZvFQ40r7n0SlEP9R4w5kCGrADOV+W7/7o=
551+
github.com/redpanda-data/common-go/rpadmin v0.1.17-0.20250918052456-493894730cb7/go.mod h1:NMOb9iySu0qkqREwoZaN0WANeqaGEZKDtKMecSobToQ=
548552
github.com/redpanda-data/common-go/secrets v0.1.3 h1:VRo+OFS4Zgb2UMvwcIuUujdMhAPNGoGESZgcF4gjgcY=
549553
github.com/redpanda-data/common-go/secrets v0.1.3/go.mod h1:WjUU/5saSXwItZx6veFOGbQZUgPQz4MQ65z22y0Ky84=
550554
github.com/redpanda-data/console/backend v0.0.0-20250915195818-3cd9fabec94b h1:zwQznaAIBpxCL9FDaILJT+L7b3YGAD6QxK21hFzhEls=
@@ -807,14 +811,14 @@ google.golang.org/api v0.233.0 h1:iGZfjXAJiUFSSaekVB7LzXl6tRfEKhUN7FkZN++07tI=
807811
google.golang.org/api v0.233.0/go.mod h1:TCIVLLlcwunlMpZIhIp7Ltk77W+vUSdUKAAIlbxY44c=
808812
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
809813
google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s=
810-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY=
811-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc=
812-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
813-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
814+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 h1:d8Nakh1G+ur7+P3GcMjpRDEkoLUcLW2iU92XVqR+XMQ=
815+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090/go.mod h1:U8EXRNSd8sUYyDfs/It7KVWodQr+Hf9xtxyxWudSwEw=
816+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1:pmJpJEvT846VzausCQ5d7KreSROcDqmO388w5YbnltA=
817+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og=
814818
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
815819
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
816-
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
817-
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
820+
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
821+
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
818822
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
819823
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
820824
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

charts/connectors/go.mod

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,10 @@ require (
163163
golang.org/x/term v0.33.0 // indirect
164164
golang.org/x/text v0.27.0 // indirect
165165
golang.org/x/time v0.11.0 // indirect
166-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
166+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 // indirect
167+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 // indirect
167168
google.golang.org/grpc v1.73.0 // indirect
168-
google.golang.org/protobuf v1.36.6 // indirect
169+
google.golang.org/protobuf v1.36.9 // indirect
169170
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
170171
gopkg.in/inf.v0 v0.9.1 // indirect
171172
gopkg.in/yaml.v2 v2.4.0 // indirect

charts/connectors/go.sum

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -512,15 +512,14 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
512512
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
513513
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
514514
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
515-
google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ=
516-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY=
517-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc=
518-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
519-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
515+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 h1:d8Nakh1G+ur7+P3GcMjpRDEkoLUcLW2iU92XVqR+XMQ=
516+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090/go.mod h1:U8EXRNSd8sUYyDfs/It7KVWodQr+Hf9xtxyxWudSwEw=
517+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1:pmJpJEvT846VzausCQ5d7KreSROcDqmO388w5YbnltA=
518+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og=
520519
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
521520
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
522-
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
523-
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
521+
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
522+
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
524523
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
525524
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
526525
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

charts/console/go.mod

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ require (
2020
)
2121

2222
require (
23+
buf.build/gen/go/redpandadata/core/connectrpc/go v1.18.1-20250903131725-492a4ada6956.1 // indirect
24+
buf.build/gen/go/redpandadata/core/protocolbuffers/go v1.36.9-20250903131725-492a4ada6956.1 // indirect
25+
connectrpc.com/connect v1.18.1 // indirect
2326
dario.cat/mergo v1.0.2 // indirect
2427
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
2528
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
@@ -124,7 +127,7 @@ require (
124127
github.com/pkg/errors v0.9.1 // indirect
125128
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
126129
github.com/redpanda-data/common-go/net v0.1.1-0.20240429123545-4da3d2b371f7 // indirect
127-
github.com/redpanda-data/common-go/rpadmin v0.1.14 // indirect
130+
github.com/redpanda-data/common-go/rpadmin v0.1.17-0.20250918052456-493894730cb7 // indirect
128131
github.com/rivo/uniseg v0.4.7 // indirect
129132
github.com/rogpeppe/go-internal v1.14.1 // indirect
130133
github.com/rubenv/sql-migrate v1.8.0 // indirect
@@ -164,9 +167,10 @@ require (
164167
golang.org/x/term v0.33.0 // indirect
165168
golang.org/x/text v0.27.0 // indirect
166169
golang.org/x/time v0.11.0 // indirect
167-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
170+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 // indirect
171+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 // indirect
168172
google.golang.org/grpc v1.73.0 // indirect
169-
google.golang.org/protobuf v1.36.6 // indirect
173+
google.golang.org/protobuf v1.36.9 // indirect
170174
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
171175
gopkg.in/inf.v0 v0.9.1 // indirect
172176
gopkg.in/yaml.v2 v2.4.0 // indirect

charts/console/go.sum

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
buf.build/gen/go/redpandadata/core/connectrpc/go v1.18.1-20250903131725-492a4ada6956.1 h1:ILKCJnvuZt7dVvSrrg96EYHZw+daqVTCj0Wgm+dM1do=
2+
buf.build/gen/go/redpandadata/core/connectrpc/go v1.18.1-20250903131725-492a4ada6956.1/go.mod h1:kc2N3jlUqEZrUEit1SEEgJrFQ14kk4uIzGHd5Wu5tMI=
3+
buf.build/gen/go/redpandadata/core/protocolbuffers/go v1.36.9-20250903131725-492a4ada6956.1 h1:wpCXTU52u2r1XLPsEScI2yZJ5xbxURTJrugu+RflQgE=
4+
buf.build/gen/go/redpandadata/core/protocolbuffers/go v1.36.9-20250903131725-492a4ada6956.1/go.mod h1:oupF1xcfwydaQw7rI2idmWZZG7lF/hTF9V6EWSc/UCg=
5+
connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw=
6+
connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8=
17
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
28
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
39
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
@@ -360,8 +366,8 @@ github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0
360366
github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=
361367
github.com/redpanda-data/common-go/net v0.1.1-0.20240429123545-4da3d2b371f7 h1:MXLdjFdFjOtyuUR4TdVVsqFP8xnru2YDwzH9bJTUr1M=
362368
github.com/redpanda-data/common-go/net v0.1.1-0.20240429123545-4da3d2b371f7/go.mod h1:UJIi/yUxGOBYXUrfUsOkxfYxcb/ll7mZrwae/i+U2kc=
363-
github.com/redpanda-data/common-go/rpadmin v0.1.14 h1:G/rlh9cHsGhTsNpkwrISdpGA8fPZ7ul57rzxbPiJhs0=
364-
github.com/redpanda-data/common-go/rpadmin v0.1.14/go.mod h1:zgE/M2UihQZRdivHfbm4x9Rb3Vm/crO5kiX3GQrxhG4=
369+
github.com/redpanda-data/common-go/rpadmin v0.1.17-0.20250918052456-493894730cb7 h1:RGdPbgiCplZvFQ40r7n0SlEP9R4w5kCGrADOV+W7/7o=
370+
github.com/redpanda-data/common-go/rpadmin v0.1.17-0.20250918052456-493894730cb7/go.mod h1:NMOb9iySu0qkqREwoZaN0WANeqaGEZKDtKMecSobToQ=
365371
github.com/redpanda-data/console/backend v0.0.0-20250915195818-3cd9fabec94b h1:zwQznaAIBpxCL9FDaILJT+L7b3YGAD6QxK21hFzhEls=
366372
github.com/redpanda-data/console/backend v0.0.0-20250915195818-3cd9fabec94b/go.mod h1:dWaJBv8Eqpe21aREHEPlacC6bNoxWArvlcgWEB6t+3w=
367373
github.com/redpanda-data/redpanda-operator/gotohelm v1.2.1-0.20250909192010-c59ff494d04a h1:cBI+h6YFt1y45nvGQ4oFOEhPcQa/ih3DiNFJpFm5XVE=
@@ -537,15 +543,14 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
537543
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
538544
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
539545
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
540-
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
541-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY=
542-
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc=
543-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
544-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
546+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 h1:d8Nakh1G+ur7+P3GcMjpRDEkoLUcLW2iU92XVqR+XMQ=
547+
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090/go.mod h1:U8EXRNSd8sUYyDfs/It7KVWodQr+Hf9xtxyxWudSwEw=
548+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1:pmJpJEvT846VzausCQ5d7KreSROcDqmO388w5YbnltA=
549+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og=
545550
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
546551
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
547-
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
548-
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
552+
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
553+
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
549554
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
550555
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
551556
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

charts/redpanda/client/client.go

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,29 +44,62 @@ type DialContextFunc = func(ctx context.Context, network, host string) (net.Conn
4444
// AdminClient creates a client to talk to a Redpanda cluster admin API based on its helm
4545
// configuration over its internal listeners.
4646
func AdminClient(state *redpanda.RenderState, dialer DialContextFunc, opts ...rpadmin.Opt) (*rpadmin.AdminAPI, error) {
47+
params, err := AdminClientConnectionInfo(state, dialer)
48+
if err != nil {
49+
return nil, err
50+
}
51+
52+
var auth rpadmin.Auth
53+
if params.AdminAuthParams.Username != "" {
54+
auth = &rpadmin.BasicAuth{
55+
Username: params.AdminAuthParams.Username,
56+
Password: params.AdminAuthParams.Password,
57+
}
58+
} else {
59+
auth = &rpadmin.NopAuth{}
60+
}
61+
62+
// NB: rpadmin automatically infers http or https, if not provided, based on the tlsConfig.
63+
client, err := rpadmin.NewAdminAPIWithDialer(params.Hosts, auth, params.TLSConfig, dialer, opts...)
64+
if err != nil {
65+
return nil, errors.WithStack(err)
66+
}
67+
68+
return client, nil
69+
}
70+
71+
type AdminAuthParams struct {
72+
Username string
73+
Password string
74+
Token string
75+
}
76+
77+
type AdminConnectionParams struct {
78+
Hosts []string
79+
AdminAuthParams AdminAuthParams
80+
TLSConfig *tls.Config
81+
}
82+
83+
func AdminClientConnectionInfo(state *redpanda.RenderState, dialer DialContextFunc) (*AdminConnectionParams, error) {
4784
var err error
48-
var tlsConfig *tls.Config
85+
86+
params := &AdminConnectionParams{}
4987

5088
if state.Values.Listeners.Admin.TLS.IsEnabled(&state.Values.TLS) {
51-
tlsConfig, err = state.TLSConfig(state.Values.Listeners.Admin.TLS)
89+
params.TLSConfig, err = state.TLSConfig(state.Values.Listeners.Admin.TLS)
5290
if err != nil {
5391
return nil, err
5492
}
5593
}
5694

57-
var auth rpadmin.Auth
5895
username, password, _, err := authFromState(state)
5996
if err != nil {
6097
return nil, err
6198
}
6299

63100
if username != "" {
64-
auth = &rpadmin.BasicAuth{
65-
Username: username,
66-
Password: password,
67-
}
68-
} else {
69-
auth = &rpadmin.NopAuth{}
101+
params.AdminAuthParams.Password = password
102+
params.AdminAuthParams.Username = username
70103
}
71104

72105
records, err := srvLookup(state, dialer, redpanda.InternalAdminAPIPortName)
@@ -78,14 +111,8 @@ func AdminClient(state *redpanda.RenderState, dialer DialContextFunc, opts ...rp
78111
for i, record := range records {
79112
hosts[i] = fmt.Sprintf("%s:%d", record.Target, record.Port)
80113
}
81-
82-
// NB: rpadmin automatically infers http or https, if not provided, based on the tlsConfig.
83-
client, err := rpadmin.NewAdminAPIWithDialer(hosts, auth, tlsConfig, dialer, opts...)
84-
if err != nil {
85-
return nil, errors.WithStack(err)
86-
}
87-
88-
return client, nil
114+
params.Hosts = hosts
115+
return params, nil
89116
}
90117

91118
// SchemaRegistryClient creates a client to talk to a Redpanda cluster admin API based on its helm

0 commit comments

Comments
 (0)