Skip to content

Releases: kubernetes-sigs/controller-runtime

v0.20.0

16 Jan 14:20
8f7e114
Compare
Choose a tag to compare

Highlights

  • Based on k8s.io/* v1.32 libraries and minimum Go version is now v1.23
  • New experimental priority queue feature
    • More details in #3013 and #2374
    • Can be enabled via manager.Options.Controller.UsePriorityQueue
    • Please give it a try and provide feedback in #2374
  • AggregatedDiscovery is automatically used when available (#2901)
  • As usual, many improvements to the fake client

Changes since v0.19.0

⚠️ Breaking Changes

  • Bump to k8s.io/* v1.32 libraries (#2971 #2990 #3001 #3007 #3029 #3043)
  • logging: Stop deduplicating API warnings by default (#2953)
  • webhook: Stop deleting unknown fields in CustomDefaulter (#2982 #3056)
  • webhook: Remove deprecated Defaulter and Validator (#2877 #2945)
  • cluster: Remove deprecated SyncPeriod option (#2970)

✨ New Features

  • cache: Add EnableWatchBookmarks option (defaults to true) (#3017)
  • cache: Export NewInformer option (#3061)
  • cert-watcher: Add polling (#3020 #3050)
  • controller: Add experimental priority queue (off per default) (#3013 #3014 #3060 #3066)
  • fake client: Allow adding indexes at runtime (#3021)
  • fake client: Add support for ServiceAccountToken subresource (#2969)
  • restmapper: Use AggregatedDiscovery if available (#2901)
  • util: Add HasOwnerReference func (#2882)
  • webhook: Add custom path option (#2998)

🐛 Bug Fixes

  • controller: Error when source.Start() never returns (#2997 #3006 #3008)
  • fake client: Don't return items on invalid selector (#3022)
  • fake client: Fix TOCTOU races (#2980)
  • fake client: Preserve TypeMeta during Get call with PartialObjectMeta (#2949)
  • fake client: Preserve TypeMeta during List call with UnstructuredList (#3074)
  • manager: Fix RenewDeadline typo in leader election (#3032)
  • manager: Use leader elector with client timeout (#3028 #3034)

🌱 Others

  • cache: Switch to Go 1.23+ stdlib maps/slices packages (#3012)
  • controller: Log the syncing source when WaitForSync fails (#3016)
  • setup-envtest: drop support for GCS (#2915)
  • Some fixes for typos (#3011 #3033 #2993)

🌱 CI

📖 Additionally, there have been 7 contributions to our documentation. (#2942, #2985, #2996, #3002, #3039, #3062)

Dependencies

Added

Nothing has changed.

Changed

  • cel.dev/expr: v0.15.0 → v0.18.0
  • github.com/Azure/go-ansiterm: d185dfc → 306776e
  • github.com/go-openapi/jsonpointer: v0.19.6 → v0.21.0
  • github.com/go-openapi/swag: v0.22.4 → v0.23.0
  • github.com/google/btree: v1.0.1 → v1.1.3
  • github.com/google/cel-go: v0.20.1 → v0.22.0
  • github.com/google/pprof: 4bfdf5a → d1b30fe
  • github.com/gregjones/httpcache: 9cad4c3 → 901d907
  • github.com/jonboulle/clockwork: v0.2.2 → v0.4.0
  • github.com/moby/spdystream: v0.4.0 → v0.5.0
  • github.com/onsi/ginkgo/v2: v2.19.0 → v2.21.0
  • github.com/onsi/gomega: v1.33.1 → v1.35.1
  • github.com/stoewer/go-strcase: v1.2.0 → v1.3.0
  • github.com/xiang90/probing: 43a291a → a49e3df
  • go.etcd.io/bbolt: v1.3.9 → v1.3.11
  • go.etcd.io/etcd/api/v3: v3.5.14 → v3.5.16
  • go.etcd.io/etcd/client/pkg/v3: v3.5.14 → v3.5.16
  • go.etcd.io/etcd/client/v2: v2.305.13 → v2.305.16
  • go.etcd.io/etcd/client/v3: v3.5.14 → v3.5.16
  • go.etcd.io/etcd/pkg/v3: v3.5.13 → v3.5.16
  • go.etcd.io/etcd/raft/v3: v3.5.13 → v3.5.16
  • go.etcd.io/etcd/server/v3: v3.5.13 → v3.5.16
  • go.uber.org/zap: v1.26.0 → v1.27.0
  • golang.org/x/crypto: v0.24.0 → v0.28.0
  • golang.org/x/exp: f3d0a9c → 8a7402a
  • golang.org/x/mod: v0.17.0 → v0.21.0
  • golang.org/x/net: v0.26.0 → v0.30.0
  • golang.org/x/oauth2: v0.21.0 → v0.23.0
  • golang.org/x/sync: v0.7.0 → v0.8.0
  • golang.org/x/sys: v0.21.0 → v0.26.0
  • golang.org/x/telemetry: f48c80b → bda5523
  • golang.org/x/term: v0.21.0 → v0.25.0
  • golang.org/x/text: v0.16.0 → v0.19.0
  • golang.org/x/time: v0.3.0 → v0.7.0
  • golang.org/x/tools: e35e4cc → v0.26.0
  • golang.org/x/xerrors: 04be3eb → 5ec99f8
  • google.golang.org/genproto/googleapis/api: 5315273 → f6391c0
  • google.golang.org/genproto/googleapis/rpc: f6361c8 → f6391c0
  • google.golang.org/genproto: b8732ec → ef43131
  • google.golang.org/protobuf: v1.34.2 → v1.35.1
  • k8s.io/api: v0.31.0 → v0.32.0
  • k8s.io/apiextensions-apiserver: v0.31.0 → v0.32.0
  • k8s.io/apimachinery: v0.31.0 → v0.32.0
  • k8s.io/apiserver: v0.31.0 → v0.32.0
  • k8s.io/client-go: v0.31.0 → v0.32.0
  • k8s.io/code-generator: v0.31.0 → v0.32.0
  • k8s.io/component-base: v0.31.0 → v0.32.0
  • k8s.io/gengo/v2: 51d4e06 → 2b36238
  • k8s.io/kms: v0.31.0 → v0.32.0
  • k8s.io/kube-openapi: 70dd376 → 32ad38e
  • k8s.io/utils: 18e509b → 3ea5e8c
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.30.3 → v0.31.0
  • sigs.k8s.io/json: bc3834c → 9aa6b5e
  • sigs.k8s.io/structured-merge-diff/v4: v4.4.1 → v4.4.2

Removed

  • github.com/golang/groupcache: 41bb18b
  • github.com/imdario/mergo: v0.3.6

Thanks to all our contributors! 😊

v0.19.4

07 Jan 16:14
7436275
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.19.3...v0.19.4

v0.18.7

07 Jan 16:13
42f7918
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.6...v0.18.7

v0.19.3

02 Dec 17:14
3e66810
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.19.2...v0.19.3

v0.18.6

02 Dec 17:12
12955b3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.5...v0.18.6

v0.19.2

21 Nov 16:33
bfd1cf9
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.19.1...v0.19.2

v0.19.1

24 Oct 13:31
013f46f
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.19.0...v0.19.1

v0.19.0

15 Aug 07:15
b901db1
Compare
Choose a tag to compare

⚠️ Deprecation Warnings

Please note that admission.Defaulter/Validator have been deprecated in favor of admission.CustomDefaulter/CustomValidator since v0.17 and will be removed with v0.20.

⚠️ Breaking Changes

✨ New Features

  • client: Add WithFieldValidation client (#2860 #2913)
  • controller & webhook: Recover panics per default & add panic metrics (#2905)
  • controllerutil: configure BlockOwnerDeletion when setting OwnerReference (#2847)
  • fake client: Add scale subresource logic (#2855)
  • predicate: Add missing generic version of ResourceVersionChangedPredicate (#2812)
  • setup-envtest: Download binaries from controller-tools releases instead of GCS (#2811)
  • setup-envtest: Publish setup-envtest binaries via release attachments (#2911)
  • workqueue: Add controller label to workqueue metrics (#2895)

🐛 Bug Fixes

  • apiutil.IsGVKNamespaced: Fix namespaced GVK check to use version (#2875)
  • cache: Fix label defaulting of byObject when namespaces are configured (#2805)
  • certwatcher: Recreate watcher if the file is unlinked and replaced (#2893)
  • manager: Fix log in AddMetricsServerExtraHandler (#2874)
  • manager: Quiet context.Canceled errors during shutdown (#2745)
  • manager: Reintroduce AddMetricsServerExtraHandler (#2813)
  • manager.Start: Prevent LeaderElector setup error from being swallowed (#2876)
  • source.Kind: String() should return correct type (#2806)

🌱 Others

  • actions: Add action to approve actions if /ok-to-test is set (#2908)
  • controller: Add dynamic watcher tests (#2881)
  • dependabot: disable go module bumps, bump all actions in a single PR (#2856)
  • verify-modules: Verify go modules are in sync with upstream k/k (#2774)

📖 Additionally, there have been 5 contributions to our documentation. (#2830, #2849, #2863, #2894, #2899, #2910)

Dependencies

Added

  • cel.dev/expr: v0.15.0
  • github.com/antlr4-go/antlr/v4: v4.13.0
  • github.com/cpuguy83/go-md2man/v2: v2.0.4
  • github.com/go-task/slim-sprig/v3: v3.0.0
  • github.com/russross/blackfriday/v2: v2.1.0
  • gopkg.in/evanphx/json-patch.v4: v4.12.0

Changed

  • cloud.google.com/go/compute/metadata: v0.2.3 → v0.3.0
  • github.com/alecthomas/kingpin/v2: v2.3.2 → v2.4.0
  • github.com/cenkalti/backoff/v4: v4.2.1 → v4.3.0
  • github.com/cespare/xxhash/v2: v2.2.0 → v2.3.0
  • github.com/chzyer/readline: 2972be2 → v1.5.1
  • github.com/cncf/xds/go: e9ce688 → 555b57e
  • github.com/davecgh/go-spew: v1.1.1 → d8f796a
  • github.com/envoyproxy/go-control-plane: v0.11.1 → v0.12.0
  • github.com/envoyproxy/protoc-gen-validate: v1.0.2 → v1.0.4
  • github.com/evanphx/json-patch: v4.12.0+incompatible → v0.5.2
  • github.com/felixge/httpsnoop: v1.0.3 → v1.0.4
  • github.com/fxamacker/cbor/v2: v2.6.0 → v2.7.0
  • github.com/go-logr/logr: v1.4.1 → v1.4.2
  • github.com/go-openapi/swag: v0.22.3 → v0.22.4
  • github.com/golang/glog: v1.1.0 → v1.2.1
  • github.com/google/cel-go: v0.17.8 → v0.20.1
  • github.com/google/pprof: 4bb14d4 → 4bfdf5a
  • github.com/google/uuid: v1.3.0 → v1.6.0
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.16.0 → v2.20.0
  • github.com/ianlancetaylor/demangle: 28f6c0f → bd984b5
  • github.com/matttproud/golang_protobuf_extensions: v1.0.4 → v1.0.1
  • github.com/moby/spdystream: v0.2.0 → v0.4.0
  • github.com/moby/term: 1aeaba8 → v0.5.0
  • github.com/onsi/ginkgo/v2: v2.17.1 → v2.19.0
  • github.com/onsi/gomega: v1.32.0 → v1.33.1
  • github.com/pmezard/go-difflib: v1.0.0 → 5d4384e
  • github.com/prometheus/client_golang: v1.16.0 → v1.19.1
  • github.com/prometheus/client_model: v0.4.0 → v0.6.1
  • github.com/prometheus/common: v0.44.0 → v0.55.0
  • github.com/prometheus/procfs: v0.12.0 → v0.15.1
  • github.com/rogpeppe/go-internal: v1.10.0 → v1.12.0
  • github.com/sirupsen/logrus: v1.9.0 → v1.9.3
  • github.com/spf13/cobra: v1.7.0 → v1.8.1
  • github.com/stretchr/testify: v1.8.4 → v1.9.0
  • go.etcd.io/bbolt: v1.3.8 → v1.3.9
  • go.etcd.io/etcd/api/v3: v3.5.10 → v3.5.14
  • go.etcd.io/etcd/client/pkg/v3: v3.5.10 → v3.5.14
  • go.etcd.io/etcd/client/v2: v2.305.10 → v2.305.13
  • go.etcd.io/etcd/client/v3: v3.5.10 → v3.5.14
  • go.etcd.io/etcd/pkg/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/raft/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/server/v3: v3.5.10 → v3.5.13
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.42.0 → v0.53.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.44.0 → v0.53.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.19.0 → v1.27.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel/metric: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel/sdk: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel/trace: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel: v1.19.0 → v1.28.0
  • go.opentelemetry.io/proto/otlp: v1.0.0 → v1.3.1
  • golang.org/x/crypto: v0.21.0 → v0.24.0
  • golang.org/x/exp: a9213ee → f3d0a9c
  • golang.org/x/mod: v0.15.0 → v0.17.0
  • golang.org/x/net: v0.23.0 → v0.26.0
  • golang.org/x/oauth2: v0.12.0 → v0.21.0
  • golang.org/x/sync: v0.6.0 → v0.7.0
  • golang.org/x/sys: v0.18.0 → v0.21.0
  • golang.org/x/telemetry: b75ee88 → f48c80b
  • golang.org/x/term: v0.18.0 → v0.21.0
  • golang.org/x/text: v0.14.0 → v0.16.0
  • golang.org/x/tools: v0.18.0 → e35e4cc
  • google.golang.org/genproto/googleapis/api: 23370e0 → 5315273
  • google.golang.org/genproto/googleapis/rpc: b8732ec → f6361c8
  • google.golang.org/genproto: f966b18 → b8732ec
  • google.golang.org/grpc: v1.58.3 → v1.65.0
  • google.golang.org/protobuf: v1.33.0 → v1.34.2
  • k8s.io/api: v0.30.0 → v0.31.0
  • k8s.io/apiextensions-apiserver: v0.30.0 → v0.31.0
  • k8s.io/apimachinery: v0.30.0 → v0.31.0
  • k8s.io/apiserver: v0.30.0 → v0.31.0
  • k8s.io/client-go: v0.30.0 → v0.31.0
  • k8s.io/code-generator: v0.30.0 → v0.31.0
  • k8s.io/component-base: v0.30.0 → v0.31.0
  • k8s.io/klog/v2: v2.120.1 → v2.130.1
  • k8s.io/kms: v0.30.0 → v0.31.0
  • k8s.io/utils: 3b25d92 → 18e509b
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.29.0 → v0.30.3
  • sigs.k8s.io/yaml: v1.3.0 → v1.4.0

Removed

  • cloud.google.com/go/compute: v1.21.0
  • github.com/antlr/antlr4/runtime/Go/antlr/v4: 8188dc5
  • github.com/chzyer/logex: v1.1.10
  • github.com/chzyer/test: a1ea475
  • github.com/cncf/udpa/go: c52dc94
  • github.com/go-task/slim-sprig: 52ccab3

Thanks to all our contributors! 😊

v0.19.0-beta.0

12 Aug 14:17
7857623
Compare
Choose a tag to compare
v0.19.0-beta.0 Pre-release
Pre-release

🚨 This is a beta release. Use it only for testing purposes.

v0.18.5

12 Aug 16:48
75a38d2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.4...v0.18.5