Downgrade otelgrpc lib to resolve dependency conflict when k8s.io/component-base is imported. #148
Downgrade otelgrpc lib to resolve dependency conflict when k8s.io/component-base is imported. #148MartinForReal wants to merge 1 commit intokubernetes-csi:masterfrom MartinForReal:master
Conversation
|
Welcome @MartinForReal! |
|
Hi @MartinForReal. Thanks for your PR. I'm waiting for a kubernetes-csi member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/ok-to-test |
|
@cvvz: Cannot trigger testing until a trusted user reviews the PR and leaves an DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/assign @jsafrane |
|
/assign @jsafrane |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: MartinForReal The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/ok-to-test |
|
/assign @pohly |
Why is that a conflict? These are v1 packages. Their API should not break between minor or patch releases. If csi-lib-utils pulls in more recent releases of these, then component-base should still work. It feels like I am missing some piece of explanation. |
|
I agree if these dependencies work well when it is invoked in this project( e.g. in ut/e2e) |
|
Keeping |
|
What I actually mean is Keeping otelgrpc the same as in component-base. |
| github.com/stretchr/testify v1.8.2 | ||
| go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.41.0 | ||
| go.opentelemetry.io/otel/trace v1.15.0 | ||
| go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.2 |
There was a problem hiding this comment.
This is not quite what current Kubernetes master is using:
go.mod: go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful v0.35.0
go.mod: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0
....
go.mod: go.opentelemetry.io/otel/metric v0.31.0 // indirect
If the goal is to be aligned, why not use exactly the same versions?
There was a problem hiding this comment.
this library is not imported in k8s.io/component-base. but glad to know it is imported in k/k. updated the pr
…rg/grpc/otelgrpc to v0.35.0
|
/hold We were able to find a compatible version in kubernetes-csi/external-provisioner#1025 |
|
@msau42 yes. We can find one by chance. But It is easier for all of the dependents because there is no need to resolve dependency conflict. |
|
We use dependabot to update dependencies in most of kubernetes-csi repos. So I am not against, but I kind of like dependabot + the latest releases (if new deps are not failing too much, which we saw with |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Downgrade otelgrpc lib to resolve dependency conflict when k8s.io/component-base is imported.
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.41.0 requires following libs
where k8s.io/component-base requires a different version
https://github.com/kubernetes/component-base/blob/44f31b29cc46816113a74802aade8f3256483bee/go.mod#L20-L24
The developer needs to resolve dependency conflict(go.opentelemetry.io/otel,go.opentelemetry.io/otel/metric and etc) when k8s/component-base and github.com/kubernetes-csi/csi-lib-utils are imported(e.g. in csi plugin implementation).
I think it is a good idea to keep go.mod aligned with k8s.io/component-base because k8s.io/component-base is widely used.
If we import go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.2.
go.opentelemetry.io/otel will not be upgraded to 1.16. And dependency issue can be resolved.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?: