kubernetes-sigs / apiserver-runtime

Libraries for implementing aggregated apiservers
Apache License 2.0
84 stars 59 forks source link

Stale k8s.io/apiserver dependency blocks downstream dependencies updates #106

Open SlavaUtesinov opened 3 months ago

SlavaUtesinov commented 3 months ago

Hi, I have been developing a custom k8s api server extension via API Aggregation Layer. My go.mod file has the following dependencies:

require (
  k8s.io/apimachinery v0.23.1
  k8s.io/apiserver v0.23.1
  k8s.io/klog/v2 v2.30.0
  sigs.k8s.io/apiserver-runtime v1.1.1
  mycustommodule vX.Y.Z
)

but mycustommodule depends on https://pkg.go.dev/go.opentelemetry.io/otel/metric@v1.27.0. As a result I have the following errors after go mod tidy(just extract):

k8s.io/apiserver/pkg/server imports
  k8s.io/apiserver/pkg/endpoints/filters imports
  go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp imports
  go.opentelemetry.io/otel/semconv: module go.opentelemetry.io/otel@latest found (v1.27.0),
  but does not contain package go.opentelemetry.io/otel/semconv

k8s.io/apiserver/pkg/server imports
  k8s.io/apiserver/pkg/endpoints/filters imports
  go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp tested by
  go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.test imports
  go.opentelemetry.io/otel/oteltest imports
  go.opentelemetry.io/otel/metric/number: module go.opentelemetry.io/otel/metric@latest found (v1.27.0),
  but does not contain package go.opentelemetry.io/otel/metric/number 

Solution is to update k8s.io/apiserver up to the latest version https://pkg.go.dev/k8s.io/apiserver@v0.30.1, but at the same time it will make me to update sigs.k8s.io/apiserver-runtime as well up to the latest commit from master. My final go.mod will look like this:

require (
  k8s.io/apimachinery v0.30.1
  k8s.io/apiserver v0.30.1
  k8s.io/klog/v2 v2.120.1
  sigs.k8s.io/apiserver-runtime v1.1.2-0.20231213224704-8af026f5e12a
  mycustommodule vX.Y.Z
)

But at this case I will have a runtime error:

pkg/mod/sigs.k8s.io/apiserver-runtime@v1.1.2-0.20231213224704-8af026f5e12a/internal/sample-apiserver/pkg/cmd/server/start.go:120:43: o.RecommendedOptions.Etcd.StorageConfig.Paging undefined (type storagebackend.Config has no field or method Paging) (exit status 1) https://github.com/kubernetes-sigs/apiserver-runtime/blob/main/internal/sample-apiserver/pkg/cmd/server/start.go#L120

Could you please update sigs.k8s.io/apiserver-runtime's dependency up to k8s.io/apiserver@v0.30.1?

k8s-triage-robot commented 2 weeks ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale