Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

etcd depends on two different versions of the same package - grpc-gateway #14499

Closed
dims opened this issue Sep 21, 2022 · 17 comments
Closed

etcd depends on two different versions of the same package - grpc-gateway #14499

dims opened this issue Sep 21, 2022 · 17 comments
Assignees
Labels
gRPC-gateway priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. stage/tracked type/feature
Milestone

Comments

@dims
Copy link
Contributor

dims commented Sep 21, 2022

If you see the bill-of-materials.json, you will see both "github.com/grpc-ecosystem/grpc-gateway/v2" and "github.com/grpc-ecosystem/grpc-gateway"
https://github.com/etcd-io/etcd/blob/main/bill-of-materials.json#L264-L280

Can we please switch to /v2 version as this is needed by the new otel libraries?

[dims@dims-m1-7728 22:12] ~/go/src/github.com/etcd-io/etcd ⟩ go mod graph | grep github.com/grpc-ecosystem/grpc-gateway/v2
go.etcd.io/etcd/v3 github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 github.com/antihax/optional@v1.0.0
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 github.com/ghodss/yaml@v1.0.0
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 github.com/golang/glog@v1.0.0
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 github.com/golang/protobuf@v1.5.2
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 github.com/google/go-cmp@v0.5.6
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 github.com/rogpeppe/fastuuid@v1.2.0
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 golang.org/x/oauth2@v0.0.0-20211104180415-d3ed0bb246c8
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 google.golang.org/genproto@v0.0.0-20211118181313-81c1377c94b1
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 google.golang.org/grpc@v1.42.0
github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0 google.golang.org/protobuf@v1.27.1
go.etcd.io/etcd/server/v3@v3.6.0-alpha.0 github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0
go.etcd.io/etcd/tests/v3@v3.6.0-alpha.0 github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0
go.opentelemetry.io/proto/otlp@v0.16.0 github.com/grpc-ecosystem/grpc-gateway/v2@v2.7.0

The older one is references here:

[dims@dims-m1-7728 22:12] ~/go/src/github.com/etcd-io/etcd ⟩ go mod graph | grep github.com/grpc-ecosystem/grpc-gateway | grep -v v2
go.etcd.io/etcd/v3 github.com/grpc-ecosystem/grpc-gateway@v1.16.0
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 github.com/antihax/optional@v1.0.0
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 github.com/ghodss/yaml@v1.0.0
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 github.com/golang/protobuf@v1.3.3
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 github.com/rogpeppe/fastuuid@v1.2.0
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 golang.org/x/net@v0.0.0-20200822124328-c89045814202
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 golang.org/x/oauth2@v0.0.0-20200107190931-bf48bf16ab8d
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 google.golang.org/genproto@v0.0.0-20200513103714-09dca8ec2884
github.com/grpc-ecosystem/grpc-gateway@v1.16.0 google.golang.org/grpc@v1.33.1
go.etcd.io/etcd/api/v3@v3.6.0-alpha.0 github.com/grpc-ecosystem/grpc-gateway@v1.16.0
go.etcd.io/etcd/server/v3@v3.6.0-alpha.0 github.com/grpc-ecosystem/grpc-gateway@v1.16.0
go.etcd.io/etcd/tests/v3@v3.6.0-alpha.0 github.com/grpc-ecosystem/grpc-gateway@v1.16.0
go.opentelemetry.io/proto/otlp@v0.7.0 github.com/grpc-ecosystem/grpc-gateway@v1.16.0

Would kindly request this to be cherry-picked on 3.5.x branch as well! (so we can then pick it up for kubernetes/kubernetes).

thanks!

@dims dims added the type/bug label Sep 21, 2022
@dims
Copy link
Contributor Author

dims commented Sep 21, 2022

cc @ahrtr

@ahrtr
Copy link
Member

ahrtr commented Sep 21, 2022

Thanks @dims for raising this issue.

etcd is directly using grpc-gateway v1.16.0, but indirectly depends on grpc-gateway 2.7.0. It's exactly the same as Kubernetes. Have you upgraded or are you planning to upgrade to grpc-gateway /v2 for Kubernetes?

Anyway, let me check take care of this for etcd. Please clarify the plan on Kubernetes side.

@ahrtr
Copy link
Member

ahrtr commented Sep 21, 2022

It seems that Kubernetes just indirectly depends on grpc-gateway, including both 1.16.0 and 2.7.0.

@ahrtr
Copy link
Member

ahrtr commented Sep 21, 2022

Note: The grpc-gateway v1 is in maintenance mode, so we should migrate to v2. FYI. https://grpc-ecosystem.github.io/grpc-gateway/docs/development/grpc-gateway_v2_migration_guide/

@ahrtr ahrtr self-assigned this Sep 21, 2022
@ahrtr ahrtr removed their assignment Sep 21, 2022
@ahrtr
Copy link
Member

ahrtr commented Sep 21, 2022

I am working on #14463 right now. Please feel free to work on this one if you have extra bandwidth. cc @serathius @spzala @ptabor

If nobody work on this when I finish #14463 (hopefully this week or early next week), then I will work on this by then.

@dims
Copy link
Contributor Author

dims commented Sep 21, 2022

It seems that Kubernetes just indirectly depends on grpc-gateway, including both 1.16.0 and 2.7.0.

yep, that's what i am trying to fix ultimately :)

@ahrtr ahrtr self-assigned this Sep 24, 2022
@ahrtr
Copy link
Member

ahrtr commented Sep 24, 2022

Since nobody works on this, I will work on this starting from late next week.

@ahrtr
Copy link
Member

ahrtr commented Sep 28, 2022

We might need to resolve #14533 in the first step.

@stale
Copy link

stale bot commented Dec 31, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Dec 31, 2022
@ahrtr ahrtr added stage/tracked and removed stale labels Dec 31, 2022
@liggitt
Copy link
Contributor

liggitt commented May 19, 2023

We might need to resolve #14533 in the first step.

does #14533 block this specifically? I'm curious how

@liggitt
Copy link
Contributor

liggitt commented May 19, 2023

getting etcd off of grpc-gateway v1 will be important to complete kubernetes/kubernetes#113366

@ahrtr
Copy link
Member

ahrtr commented May 19, 2023

I do not get time to dig into it, but most likely it's intertwined with #14533

#15145 might be a separate hot potato.

@ahrtr ahrtr added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label May 19, 2023
@ahrtr
Copy link
Member

ahrtr commented May 19, 2023

@fuweid do you have bandwidth and be interested in taking a deep dive into this issue and #14533?

@fuweid
Copy link
Contributor

fuweid commented May 19, 2023

/assign

@ahrtr Sure!

@ahrtr
Copy link
Member

ahrtr commented Sep 19, 2023

Resolved in #16595

@ahrtr ahrtr closed this as completed Sep 19, 2023
@ahrtr
Copy link
Member

ahrtr commented Sep 19, 2023

The change will be included in etcd 3.6.0. @dims

@dims
Copy link
Contributor Author

dims commented Sep 19, 2023

thanks @ahrtr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gRPC-gateway priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. stage/tracked type/feature
Development

No branches or pull requests

4 participants