Open andrewmains12 opened 2 years ago
cc @zmt I'm tracking the work overall here for public consumption.
Thoughts on this @nbroyles ? cc'ing you since I know you did a lot of work on the Go based integration tests; lmk if there's anyone else relevant to loop in.
cc also @justinjc @SokolAndrey
Hey @schallert any thoughts on this, and/or cc anyone who might have knowledge/concerns?
I did a bunch of PR's against an Uber specific branch to unblock things on our side; I think they should be workable against master as well. If the overall approach seems reasonable, I'll get those going.
tl;dr:
etcd/v3/integration
,etcd/v3/server/embed
)Problem
M3 currently uses the etcd/v3/integration and etcd/v3/server/embed packages heavily in tests.
This poses problems for M3's use as a library; it introduces dependencies on etcd server side packages, which can conflict with M3 versions of those same packages. Most recently, we hit this particular issue with grpc-go and otel (see https://github.com/m3db/m3/issues/3725):
Furthermore, etcd's documentation suggests that the integration package is somewhat misused in tests today, and may eventually go away (or be replaced)
Proposal
We can avoid these dependency problems entirely by limiting our usage of etcd to its client dependencies.
This means:
etcd/v3/integration
package (e.g.m3/docker/etcdintegration
)m3/docker/etcdintegration
m3/docker/etcdintegration
)