kubevela-core-api icon indicating copy to clipboard operation
kubevela-core-api copied to clipboard

K8S apiserver dependency causes dependency hell

Open morigs opened this issue 2 years ago • 2 comments

This package directly depends on the k8s.io/apiserver package, thus, depends on enormous amount of the k8s itself.

This makes this package extremely difficult to use for us(

For instance, we have conflict in opentelemetry dependency because k8s depends on outdated version of it.

Unfortunately, haven't found a workaround yet (expect for using unstructured with dynamic client instead of this lib)

... imports
        github.com/oam-dev/kubevela-core-api/apis/core.oam.dev/v1beta1 imports
        github.com/oam-dev/kubevela-core-api/apis/types imports
        github.com/oam-dev/cluster-gateway/pkg/config imports
        k8s.io/apiserver/pkg/server imports
        k8s.io/apiserver/pkg/endpoints/filters imports
        k8s.io/component-base/tracing imports
        go.opentelemetry.io/otel/exporters/otlp/otlpgrpc imports
        go.opentelemetry.io/otel/exporters/otlp/internal/transform tested by
        go.opentelemetry.io/otel/exporters/otlp/internal/transform.test imports
        go.opentelemetry.io/otel/sdk/metric/aggregator/minmaxsumcount: module go.opentelemetry.io/otel/sdk/metric@latest found (v0.37.0), but does not contain package go.opentelemetry.io/otel/sdk/metric/aggregator/minmaxsumcount

morigs avatar Mar 23 '23 20:03 morigs

Have you tried using replace like:

https://github.com/kubevela/kubevela-core-api/blob/main/go.mod#L30

https://github.com/kubevela/kubevela/blob/master/go.mod#L327-L333

wonderflow avatar Apr 13 '23 02:04 wonderflow

Yeah, but I'm getting other errors as well as linting error forbidding replaces. I can try again if you're interested in the error messages. But client that depends on the entire controller runtime doesn't seem right anyway. There must be a better way

morigs avatar Apr 13 '23 05:04 morigs