Skip to content

Commit a5275d9

Browse files
authored
chore(milvus): update Milvus SDK to new module (#3408)
* chore(milvus): update Milvus SDK to new module The module github.com/milvus-io/milvus-sdk-go/v2 has been deprecated in March 2025 [1]. The new module is now github.com/milvus-io/milvus/client/v2. This commit updates the Go examples and test case to use the new SDK. [1]: https://github.com/milvus-io/milvus-sdk-go [2]: https://github.com/milvus-io/milvus/tree/master/client Signed-off-by: Eng Zer Jun <[email protected]> * Use subtest context for consistency Thank you CodeRabbit Reference: #3408 (comment) Signed-off-by: Eng Zer Jun <[email protected]> * Use the test context instead of creating a new background context Thank you CodeRabbit. Reference: #3408 (comment) Signed-off-by: Eng Zer Jun <[email protected]> * Update image version to v2.6.3 Signed-off-by: Eng Zer Jun <[email protected]> * Update image version to v2.6.3 in docs too Signed-off-by: Eng Zer Jun <[email protected]> --------- Signed-off-by: Eng Zer Jun <[email protected]>
1 parent 75163a4 commit a5275d9

File tree

6 files changed

+578
-93
lines changed

6 files changed

+578
-93
lines changed

docs/modules/milvus.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustom
4242
#### Image
4343

4444
Use the second argument in the `Run` function to set a valid Docker image.
45-
In example: `Run(context.Background(), "milvusdb/milvus:v2.3.9")`.
45+
In example: `Run(context.Background(), "milvusdb/milvus:v2.6.3")`.
4646

4747
### Container Options
4848

modules/milvus/examples_test.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"fmt"
66
"log"
77

8-
"github.com/milvus-io/milvus-sdk-go/v2/client"
9-
"github.com/milvus-io/milvus-sdk-go/v2/entity"
8+
"github.com/milvus-io/milvus/client/v2/entity"
9+
"github.com/milvus-io/milvus/client/v2/milvusclient"
1010

1111
"github.com/testcontainers/testcontainers-go"
1212
"github.com/testcontainers/testcontainers-go/modules/milvus"
@@ -16,7 +16,7 @@ func ExampleRun() {
1616
// runMilvusContainer {
1717
ctx := context.Background()
1818

19-
milvusContainer, err := milvus.Run(ctx, "milvusdb/milvus:v2.3.9")
19+
milvusContainer, err := milvus.Run(ctx, "milvusdb/milvus:v2.6.3")
2020
defer func() {
2121
if err := testcontainers.TerminateContainer(milvusContainer); err != nil {
2222
log.Printf("failed to terminate container: %s", err)
@@ -44,7 +44,7 @@ func ExampleMilvusContainer_collections() {
4444
// createCollections {
4545
ctx := context.Background()
4646

47-
milvusContainer, err := milvus.Run(ctx, "milvusdb/milvus:v2.3.9")
47+
milvusContainer, err := milvus.Run(ctx, "milvusdb/milvus:v2.6.3")
4848
defer func() {
4949
if err := testcontainers.TerminateContainer(milvusContainer); err != nil {
5050
log.Printf("failed to terminate container: %s", err)
@@ -62,12 +62,14 @@ func ExampleMilvusContainer_collections() {
6262
}
6363

6464
// Create a client to interact with the Milvus container
65-
milvusClient, err := client.NewGrpcClient(context.Background(), connectionStr)
65+
milvusClient, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
66+
Address: connectionStr,
67+
})
6668
if err != nil {
6769
log.Print("failed to connect to Milvus:", err.Error())
6870
return
6971
}
70-
defer milvusClient.Close()
72+
defer milvusClient.Close(ctx)
7173

7274
collectionName := "book"
7375
schema := &entity.Schema{
@@ -98,16 +100,15 @@ func ExampleMilvusContainer_collections() {
98100
}
99101

100102
err = milvusClient.CreateCollection(
101-
context.Background(), // ctx
102-
schema,
103-
2, // shardNum
103+
ctx,
104+
milvusclient.NewCreateCollectionOption(collectionName, schema).WithShardNum(2),
104105
)
105106
if err != nil {
106107
log.Printf("failed to create collection: %s", err)
107108
return
108109
}
109110

110-
list, err := milvusClient.ListCollections(context.Background())
111+
list, err := milvusClient.ListCollections(ctx, milvusclient.NewListCollectionOption())
111112
if err != nil {
112113
log.Printf("failed to list collections: %s", err)
113114
return

modules/milvus/go.mod

Lines changed: 83 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,148 @@
11
module github.com/testcontainers/testcontainers-go/modules/milvus
22

3-
go 1.24.0
3+
go 1.24.4
44

55
toolchain go1.24.7
66

77
require (
8-
github.com/milvus-io/milvus-sdk-go/v2 v2.4.0
8+
github.com/milvus-io/milvus/client/v2 v2.6.0
99
github.com/stretchr/testify v1.11.1
1010
github.com/testcontainers/testcontainers-go v0.39.0
1111
)
1212

1313
require (
1414
dario.cat/mergo v1.0.2 // indirect
15-
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
15+
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
1616
github.com/Microsoft/go-winio v0.6.2 // indirect
17+
github.com/beorn7/perks v1.0.1 // indirect
18+
github.com/blang/semver/v4 v4.0.0 // indirect
1719
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
20+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
21+
github.com/cilium/ebpf v0.11.0 // indirect
1822
github.com/cockroachdb/errors v1.9.1 // indirect
1923
github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f // indirect
2024
github.com/cockroachdb/redact v1.1.3 // indirect
25+
github.com/containerd/cgroups/v3 v3.0.3 // indirect
2126
github.com/containerd/errdefs v1.0.0 // indirect
2227
github.com/containerd/errdefs/pkg v0.3.0 // indirect
2328
github.com/containerd/log v0.1.0 // indirect
2429
github.com/containerd/platforms v0.2.1 // indirect
30+
github.com/coreos/go-semver v0.3.0 // indirect
31+
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
2532
github.com/cpuguy83/dockercfg v0.3.2 // indirect
2633
github.com/davecgh/go-spew v1.1.1 // indirect
2734
github.com/distribution/reference v0.6.0 // indirect
28-
github.com/docker/docker v28.3.3+incompatible // indirect
35+
github.com/docker/docker v28.4.0+incompatible // indirect
2936
github.com/docker/go-connections v0.6.0 // indirect
3037
github.com/docker/go-units v0.5.0 // indirect
31-
github.com/ebitengine/purego v0.8.4 // indirect
38+
github.com/dustin/go-humanize v1.0.1 // indirect
39+
github.com/ebitengine/purego v0.9.0 // indirect
3240
github.com/felixge/httpsnoop v1.0.4 // indirect
41+
github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
3342
github.com/getsentry/sentry-go v0.12.0 // indirect
34-
github.com/go-logr/logr v1.4.2 // indirect
43+
github.com/go-logr/logr v1.4.3 // indirect
3544
github.com/go-logr/stdr v1.2.2 // indirect
36-
github.com/go-ole/go-ole v1.2.6 // indirect
45+
github.com/go-ole/go-ole v1.3.0 // indirect
46+
github.com/godbus/dbus/v5 v5.0.4 // indirect
3747
github.com/gogo/protobuf v1.3.2 // indirect
3848
github.com/golang/protobuf v1.5.4 // indirect
49+
github.com/google/btree v1.1.2 // indirect
3950
github.com/google/uuid v1.6.0 // indirect
51+
github.com/gorilla/websocket v1.4.2 // indirect
4052
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
53+
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
54+
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
55+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
56+
github.com/jonboulle/clockwork v0.2.2 // indirect
57+
github.com/json-iterator/go v1.1.12 // indirect
4158
github.com/klauspost/compress v1.18.0 // indirect
4259
github.com/kr/pretty v0.3.1 // indirect
4360
github.com/kr/text v0.2.0 // indirect
44-
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
61+
github.com/lufia/plan9stats v0.0.0-20250827001030-24949be3fa54 // indirect
4562
github.com/magiconair/properties v1.8.10 // indirect
46-
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.0 // indirect
63+
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
64+
github.com/milvus-io/milvus-proto/go-api/v2 v2.6.1-0.20250819024338-07695f709619 // indirect
65+
github.com/milvus-io/milvus/pkg/v2 v2.0.0-20250319085209-5a6b4e56d59e // indirect
4766
github.com/moby/docker-image-spec v1.3.1 // indirect
4867
github.com/moby/go-archive v0.1.0 // indirect
4968
github.com/moby/patternmatcher v0.6.0 // indirect
5069
github.com/moby/sys/sequential v0.6.0 // indirect
5170
github.com/moby/sys/user v0.4.0 // indirect
5271
github.com/moby/sys/userns v0.1.0 // indirect
53-
github.com/moby/term v0.5.0 // indirect
72+
github.com/moby/term v0.5.2 // indirect
73+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
74+
github.com/modern-go/reflect2 v1.0.2 // indirect
5475
github.com/morikuni/aec v1.0.0 // indirect
5576
github.com/opencontainers/go-digest v1.0.0 // indirect
5677
github.com/opencontainers/image-spec v1.1.1 // indirect
78+
github.com/opencontainers/runtime-spec v1.0.2 // indirect
79+
github.com/panjf2000/ants/v2 v2.11.3 // indirect
5780
github.com/pkg/errors v0.9.1 // indirect
5881
github.com/pmezard/go-difflib v1.0.0 // indirect
59-
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
60-
github.com/rogpeppe/go-internal v1.13.1 // indirect
61-
github.com/shirou/gopsutil/v4 v4.25.6 // indirect
82+
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
83+
github.com/prometheus/client_golang v1.14.0 // indirect
84+
github.com/prometheus/client_model v0.5.0 // indirect
85+
github.com/prometheus/common v0.42.0 // indirect
86+
github.com/prometheus/procfs v0.9.0 // indirect
87+
github.com/rogpeppe/go-internal v1.14.1 // indirect
88+
github.com/samber/lo v1.27.0 // indirect
89+
github.com/shirou/gopsutil/v3 v3.22.9 // indirect
90+
github.com/shirou/gopsutil/v4 v4.25.9 // indirect
6291
github.com/sirupsen/logrus v1.9.3 // indirect
63-
github.com/tidwall/gjson v1.14.4 // indirect
92+
github.com/soheilhy/cmux v0.1.5 // indirect
93+
github.com/spaolacci/murmur3 v1.1.0 // indirect
94+
github.com/spf13/cast v1.3.1 // indirect
95+
github.com/spf13/pflag v1.0.5 // indirect
96+
github.com/tidwall/gjson v1.17.1 // indirect
6497
github.com/tidwall/match v1.1.1 // indirect
6598
github.com/tidwall/pretty v1.2.0 // indirect
66-
github.com/tklauser/go-sysconf v0.3.12 // indirect
67-
github.com/tklauser/numcpus v0.6.1 // indirect
99+
github.com/tklauser/go-sysconf v0.3.15 // indirect
100+
github.com/tklauser/numcpus v0.10.0 // indirect
101+
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect
102+
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
103+
github.com/x448/float16 v0.8.4 // indirect
104+
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect
68105
github.com/yusufpapurcu/wmi v1.2.4 // indirect
69-
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
70-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
71-
go.opentelemetry.io/otel v1.35.0 // indirect
72-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
73-
go.opentelemetry.io/otel/metric v1.35.0 // indirect
74-
go.opentelemetry.io/otel/trace v1.35.0 // indirect
106+
go.etcd.io/bbolt v1.3.6 // indirect
107+
go.etcd.io/etcd/api/v3 v3.5.5 // indirect
108+
go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect
109+
go.etcd.io/etcd/client/v2 v2.305.5 // indirect
110+
go.etcd.io/etcd/client/v3 v3.5.5 // indirect
111+
go.etcd.io/etcd/pkg/v3 v3.5.5 // indirect
112+
go.etcd.io/etcd/raft/v3 v3.5.5 // indirect
113+
go.etcd.io/etcd/server/v3 v3.5.5 // indirect
114+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
115+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
116+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
117+
go.opentelemetry.io/otel v1.38.0 // indirect
118+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 // indirect
119+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 // indirect
120+
go.opentelemetry.io/otel/metric v1.38.0 // indirect
121+
go.opentelemetry.io/otel/sdk v1.38.0 // indirect
122+
go.opentelemetry.io/otel/trace v1.38.0 // indirect
75123
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
124+
go.uber.org/atomic v1.11.0 // indirect
125+
go.uber.org/automaxprocs v1.5.3 // indirect
126+
go.uber.org/multierr v1.11.0 // indirect
127+
go.uber.org/zap v1.27.0 // indirect
76128
golang.org/x/crypto v0.42.0 // indirect
129+
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
77130
golang.org/x/net v0.43.0 // indirect
131+
golang.org/x/sync v0.17.0 // indirect
78132
golang.org/x/sys v0.36.0 // indirect
79133
golang.org/x/text v0.29.0 // indirect
134+
golang.org/x/time v0.5.0 // indirect
135+
google.golang.org/genproto v0.0.0-20240624140628-dc46fd24d27d // indirect
80136
google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect
81137
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
82138
google.golang.org/grpc v1.67.0 // indirect
83139
google.golang.org/protobuf v1.34.2 // indirect
140+
gopkg.in/inf.v0 v0.9.1 // indirect
141+
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
142+
gopkg.in/yaml.v2 v2.4.0 // indirect
84143
gopkg.in/yaml.v3 v3.0.1 // indirect
144+
k8s.io/apimachinery v0.28.6 // indirect
145+
sigs.k8s.io/yaml v1.3.0 // indirect
85146
)
86147

87148
replace github.com/testcontainers/testcontainers-go => ../..

0 commit comments

Comments
 (0)