Skip to content

v0.21.0

Latest
Compare
Choose a tag to compare
@sbueringer sbueringer released this 22 May 16:54
· 6 commits to main since this release
71f7db5

Highlights

  • Bump to Kubernetes v1.33 libraries
  • Improvements for priority queue (#2374)
  • envtest now has an option to download envtest binaries (can be used to replace setup-envtest depending on use case)
  • Metric improvements: native histograms, all Go runtime metrics are enabled now
  • Various bug fixes
  • New reviewers: @troy0820, @JoelSpeed!!

⚠️ Breaking Changes

  • Bump to k8s.io/* v0.33.0 and Go 1.24 (#3104 #3142 #3161 #3204 #3215)
  • config: Stop enabling client-side ratelimiter by default (#3119)
    • Previous behavior can be preserved by setting QPS 20 and Burst 30 on the rest.Config
  • controller: NewUnmanaged/NewTypedUnmanaged: Stop requiring a manager (#3141)
  • reconcile: Deprecate Result.Requeue (#3107)

✨ New Features

  • controller: priority queue:
    • Add debug logging for the state of the priority queue (#3075)
    • Add priority label to queue depth metric (#3156)
    • Leverage IsInInitialList (#3162)
    • Remove redundant WithLowPriorityWhenUnchanged in builder (#3168)
    • Retain the priority after Reconcile (#3167)
    • Set priority automatically in handlers (#3111 #3152 #3160 #3174)
  • envtest: Add Environment.KubeConfig field (#2278)
  • envtest: Add option to download envtest binaries (#3135 #3137)
  • events: Add IsInInitialList to TypedCreateEvent (#3162)
  • log/zap: Enable panic log level (#3186)
  • logging: Adopt WarningHandlerWithContext (#3176)
  • logging: Improve logging by adopting contextual logging (#3149)
  • metrics: Adopt native histograms (#3165)
  • metrics: Expose all Go runtime metrics (#3070)

🐛 Bug Fixes

  • apiutil: restmapper: Respect preferred version (#3151)
  • builder: webhook: Fix custom path for webhook conflicts (#3102)
  • cache: Clone maps to prevent data races when concurrently creating caches using the same options (#3078)
  • cache: Stop accumulating lists in multi-namespace cache implementation (#3195)
  • cache: List out of global cache when present and necessary (#3126)
  • client: Return error if pagination is used with the cached client (#3134)
  • controller: Support WaitForSync in TypedSyncingSource (#3084)
  • controller: priority queue: Fix behavior of rate limit option in priorityqueue.AddWithOpts (#3103)
  • controller: priority queue: Yet another queue_depth metric fix (#3085)
  • controllerutil: CreateOrUpdate: Avoid panic when the MutateFn is nil (#2828)
  • envtest: Fix nil pointer exception in Stop() (#3153)
  • fake client: Fix data races when writing to the scheme (#3143)
  • fake client: Use k8s.io/apimachinery/pkg/util/json to unmarshal in fake client (#3208)
  • log/zap: Fix verbose info lost on KubeAwareEncoder.Clone (#3209)
  • logging: controller: Use fmt.Stringer from custom source for logging (if available) (#3068)
  • webhook: MultiMutatingHandler/MultiValidatingHandler: return warnings on webhook response (#3223)

🌱 Others

  • Add troy0820 to reviewers (#3099)
  • Add JoelSpeed to reviewers (#3097)
  • client: Validate that unstructured objects don't require scheme registration (#3138)
  • controller: Mention the SkipNameValidation option in the name validation error (#3170)
  • docs: Clarify that controller-runtime is not a kubebuilder subproject (#3185)
  • envtest: Export envtest.ReadCRDFiles (#3129)
  • golangci-lint: Bump golangci-lint to v1.63.4 (#3076)
  • golangci-lint: Bump golangci-lint to v2.1.6 (#3187)
  • manager: Fix race in unit test (#3150)
  • setup-envtest: Add RELEASE_TAG to show binary version with version command (#3166)
  • setup-envtest: Fix Godoc for version.Version (#3177)
  • tests: Fix: make test fails with make: *** [Makefile:73: test] Error 1 (#3125)

📖 Additionally, there have been 4 contributions to our documentation. (#3116, #3118, #3169, #3181, #3193, #3225)

Dependencies

Added

  • github.com/klauspost/compress: v1.18.0
  • github.com/kylelemons/godebug: v1.1.0
  • github.com/planetscale/vtprotobuf: 0393e58
  • go.opentelemetry.io/auto/sdk: v1.1.0
  • gopkg.in/go-jose/go-jose.v2: v2.6.3
  • sigs.k8s.io/randfill: v1.0.0

Changed

  • cel.dev/expr: v0.18.0 → v0.19.1
  • cloud.google.com/go/compute/metadata: v0.3.0 → v0.5.0
  • github.com/cncf/xds/go: 555b57e → b4127c9
  • github.com/coreos/go-oidc: v2.2.1+incompatible → v2.3.0+incompatible
  • github.com/davecgh/go-spew: d8f796a → v1.1.1
  • github.com/envoyproxy/go-control-plane: v0.12.0 → v0.13.0
  • github.com/envoyproxy/protoc-gen-validate: v1.0.4 → v1.1.0
  • github.com/evanphx/json-patch/v5: v5.9.0 → v5.9.11
  • github.com/golang-jwt/jwt/v4: v4.5.0 → v4.5.2
  • github.com/golang/glog: v1.2.1 → v1.2.2
  • github.com/google/cel-go: v0.22.0 → v0.23.2
  • github.com/google/gnostic-models: v0.6.8 → v0.6.9
  • github.com/google/go-cmp: v0.6.0 → v0.7.0
  • github.com/gorilla/websocket: v1.5.0 → e064f32
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.20.0 → v2.24.0
  • github.com/jessevdk/go-flags: v1.4.0 → v1.6.1
  • github.com/onsi/ginkgo/v2: v2.21.0 → v2.22.0
  • github.com/onsi/gomega: v1.35.1 → v1.36.1
  • github.com/pmezard/go-difflib: 5d4384e → v1.0.0
  • github.com/prometheus/client_golang: v1.19.1 → v1.22.0
  • github.com/prometheus/common: v0.55.0 → v0.62.0
  • github.com/rogpeppe/go-internal: v1.12.0 → v1.13.1
  • github.com/stretchr/objx: v0.5.0 → v0.5.2
  • github.com/stretchr/testify: v1.9.0 → v1.10.0
  • go.etcd.io/etcd/api/v3: v3.5.16 → v3.5.21
  • go.etcd.io/etcd/client/pkg/v3: v3.5.16 → v3.5.21
  • go.etcd.io/etcd/client/v2: v2.305.16 → v2.305.21
  • go.etcd.io/etcd/client/v3: v3.5.16 → v3.5.21
  • go.etcd.io/etcd/pkg/v3: v3.5.16 → v3.5.21
  • go.etcd.io/etcd/raft/v3: v3.5.16 → v3.5.21
  • go.etcd.io/etcd/server/v3: v3.5.16 → v3.5.21
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.53.0 → v0.58.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.53.0 → v0.58.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.27.0 → v1.33.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.28.0 → v1.33.0
  • go.opentelemetry.io/otel/metric: v1.28.0 → v1.33.0
  • go.opentelemetry.io/otel/sdk: v1.28.0 → v1.33.0
  • go.opentelemetry.io/otel/trace: v1.28.0 → v1.33.0
  • go.opentelemetry.io/otel: v1.28.0 → v1.33.0
  • go.opentelemetry.io/proto/otlp: v1.3.1 → v1.4.0
  • golang.org/x/crypto: v0.28.0 → v0.36.0
  • golang.org/x/net: v0.30.0 → v0.38.0
  • golang.org/x/oauth2: v0.23.0 → v0.27.0
  • golang.org/x/sync: v0.8.0 → v0.12.0
  • golang.org/x/sys: v0.26.0 → v0.31.0
  • golang.org/x/term: v0.25.0 → v0.30.0
  • golang.org/x/text: v0.19.0 → v0.23.0
  • golang.org/x/time: v0.7.0 → v0.9.0
  • google.golang.org/genproto/googleapis/api: f6391c0 → e6fa225
  • google.golang.org/genproto/googleapis/rpc: f6391c0 → e6fa225
  • google.golang.org/grpc: v1.65.0 → v1.68.1
  • google.golang.org/protobuf: v1.35.1 → v1.36.5
  • k8s.io/api: v0.32.0 → v0.33.0
  • k8s.io/apiextensions-apiserver: v0.32.0 → v0.33.0
  • k8s.io/apimachinery: v0.32.0 → v0.33.0
  • k8s.io/apiserver: v0.32.0 → v0.33.0
  • k8s.io/client-go: v0.32.0 → v0.33.0
  • k8s.io/code-generator: v0.32.0 → v0.33.0
  • k8s.io/component-base: v0.32.0 → v0.33.0
  • k8s.io/gengo/v2: 2b36238 → 1244d31
  • k8s.io/kms: v0.32.0 → v0.33.0
  • k8s.io/kube-openapi: 32ad38e → c8a335a
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.31.0 → v0.31.2
  • sigs.k8s.io/structured-merge-diff/v4: v4.4.2 → v4.6.0

Removed

  • github.com/asaskevich/govalidator: f61b66f
  • github.com/go-kit/log: v0.2.1
  • github.com/go-logfmt/logfmt: v0.5.1
  • google.golang.org/appengine: v1.6.7
  • gopkg.in/square/go-jose.v2: v2.6.0

Thanks to all our contributors! 😊