Skip to content

Releases: kubernetes-sigs/controller-runtime

v0.24.0

30 Apr 12:33
d3eaef3

Choose a tag to compare

⚠️ Breaking Changes

🐛 Bug Fixes

  • Cache: Fix IndexField blocking until informer is synced (#3445)
  • Cache: Wait for cache sync when ReaderFailOnMissingInformer is true (#3425)
  • Client: Update typed ApplyConfigurations with server response (#3475)
  • Fakeclient: Fix SSA status patch resource version check (#3443)
  • Fakeclient: Fix panic when using CRs with embedded pointer structs (#3431)
  • Fakeclient: Fix status apply if existing object has managedFields set (#3430)
  • Fakeclient: Retry GenerateName on AlreadyExists collisions (#3498)
  • HTTP servers: Wire up base context into http servers (#3452)

🌱 Others

  • Builder/Webhooks: Remove deprecated custom path function (#3465)
  • Cache: Test cache reader waits for cache sync (#3434)
  • Certwatcher: Deflake certwatcher tests (#3457)
  • Dependencies: Use forked version of btree (#3449)
  • Envtest: Ensure envtest stops the whole process group (#3447)
  • Logging: Add missing space in zap-log-level flag description (#3492)
  • Misc: Adopt new(x) over ptr.To(x) and re-enable newexpr lint (#3489)
  • Owners: Cleanup (#3453)
  • Recorder: Add logger into context for structured logging (#3454)
  • Recorder: Switch to StartLogging for event debug logs (#3451)
  • Scheme: Deprecate the scheme builder (#3461)
  • Source/Kind: Improve logging for dynamic type kind source (#3494)
  • Webhooks: Reduce memory usage of default webhooks (#3463 #3468)

🌱 CI & linters

  • Chore: Update golangci-lint version to v2.8.0 (#3448)
  • Chore: Update golangci-lint version to v2.10.1 (#3470)
  • Chore: Update golangci-lint version to v2.11.3 (#3482)
  • Migrate away from custom GitHub action approval workflow (#3491)
  • Release: Auto-create git tags for the tools/setup-envtest submodule (#3476)

📖 Additionally, there has been 1 contribution to our documentation. (#3477)

Dependencies

Added

  • github.com/cenkalti/backoff/v5: v5.0.3
  • gonum.org/v1/gonum: v0.16.0
  • k8s.io/streaming: v0.36.0

Changed

  • cel.dev/expr: v0.24.0 → v0.25.1
  • cloud.google.com/go/compute/metadata: v0.6.0 → v0.9.0
  • github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.26.0 → v1.30.0
  • github.com/alecthomas/units: b94a6e3 → 0f3dac3
  • github.com/cncf/xds/go: 2f00578 → ee656c7
  • github.com/coreos/go-oidc: v2.3.0+incompatible → v2.5.0+incompatible
  • github.com/coreos/go-systemd/v22: v22.5.0 → v22.7.0
  • github.com/davecgh/go-spew: v1.1.1 → d8f796a
  • github.com/emicklei/go-restful/v3: v3.12.2 → v3.13.0
  • github.com/envoyproxy/go-control-plane/envoy: v1.32.4 → v1.36.0
  • github.com/envoyproxy/go-control-plane: v0.13.4 → v0.14.0
  • github.com/envoyproxy/protoc-gen-validate: v1.2.1 → v1.3.0
  • github.com/go-jose/go-jose/v4: v4.0.4 → v4.1.3
  • github.com/golang-jwt/jwt/v5: v5.2.2 → v5.3.0
  • github.com/golang/glog: v1.2.4 → v1.2.5
  • github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus: v1.0.1 → v1.1.0
  • github.com/grpc-ecosystem/go-grpc-middleware/v2: v2.3.0 → v2.3.3
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.26.3 → v2.27.7
  • github.com/moby/spdystream: v0.5.0 → v0.5.1
  • github.com/onsi/ginkgo/v2: v2.27.2 → v2.27.4
  • github.com/onsi/gomega: v1.38.2 → v1.39.0
  • github.com/pmezard/go-difflib: v1.0.0 → 5d4384e
  • github.com/prometheus/common: v0.66.1 → v0.67.5
  • github.com/prometheus/procfs: v0.16.1 → v0.19.2
  • github.com/spf13/cobra: v1.10.0 → v1.10.2
  • github.com/spiffe/go-spiffe/v2: v2.5.0 → v2.6.0
  • go.etcd.io/etcd/api/v3: v3.6.5 → v3.6.8
  • go.etcd.io/etcd/client/pkg/v3: v3.6.5 → v3.6.8
  • go.etcd.io/etcd/client/v3: v3.6.5 → v3.6.8
  • go.etcd.io/etcd/pkg/v3: v3.6.5 → v3.6.8
  • go.etcd.io/etcd/server/v3: v3.6.5 → v3.6.8
  • go.opentelemetry.io/auto/sdk: v1.1.0 → v1.2.1
  • go.opentelemetry.io/contrib/detectors/gcp: v1.34.0 → v1.39.0
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.60.0 → v0.65.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.61.0 → v0.65.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.34.0 → v1.40.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.34.0 → v1.40.0
  • go.opentelemetry.io/otel/metric: v1.36.0 → v1.41.0
  • go.opentelemetry.io/otel/sdk/metric: v1.36.0 → v1.40.0
  • go.opentelemetry.io/otel/sdk: v1.36.0 → v1.40.0
  • go.opentelemetry.io/otel/trace: v1.36.0 → v1.41.0
  • go.opentelemetry.io/otel: v1.36.0 → v1.41.0
  • go.opentelemetry.io/proto/otlp: v1.5.0 → v1.9.0
  • go.uber.org/zap: v1.27.0 → v1.27.1
  • golang.org/x/crypto: v0.45.0 → v0.47.0
  • golang.org/x/exp: 8a7402a → 944ab1f
  • golang.org/x/mod: v0.29.0 → v0.32.0
  • golang.org/x/net: v0.47.0 → v0.49.0
  • golang.org/x/oauth2: v0.30.0 → v0.34.0
  • golang.org/x/sync: v0.18.0 → v0.19.0
  • golang.org/x/sys: v0.38.0 → v0.40.0
  • golang.org/x/telemetry: 078029d → bd525da
  • golang.org/x/term: v0.37.0 → v0.39.0
  • golang.org/x/text: v0.31.0 → v0.33.0
  • golang.org/x/time: v0.9.0 → v0.14.0
  • golang.org/x/tools/go/expect: v0.1.0-deprecated → v0.1.1-deprecated
  • golang.org/x/tools: v0.38.0 → v0.41.0
  • google.golang.org/genproto/googleapis/api: a0af3ef → 8636f87
  • google.golang.org/genproto/googleapis/rpc: 200df99 → 8636f87
  • google.golang.org/grpc: v1.72.2 → v1.79.3
  • google.golang.org/protobuf: v1.36.8 → f2248ac
  • k8s.io/api: v0.35.0 → v0.36.0
  • k8s.io/apiextensions-apiserver: v0.35.0 → v0.36.0
  • k8s.io/apimachinery: v0.35.0 → v0.36.0
  • k8s.io/apiserver: v0.35.0 → v0.36.0
  • k8s.io/client-go: v0.35.0 → v0.36.0
  • k8s.io/code-generator: v0.35.0 → v0.36.0
  • k8s.io/component-base: v0.35.0 → v0.36.0
  • k8s.io/klog/v2: v2.130.1 → v2.140.0
  • k8s.io/kms: v0.35.0 → v0.36.0
  • k8s.io/kube-openapi: 589584f → 43fb72c
  • k8s.io/utils: bc988d5 → b8788ab
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.31.2 → v0.34.0
  • sigs.k8s.io/structured-merge-diff/v6: v6.3.0 → v6.3.2

Removed

  • github.com/cenkalti/backoff/v4: v4.3.0
  • github.com/gregjones/httpcache: 901d907
  • github.com/grpc-ecosystem/go-grpc-prometheus: v1.2.0
  • github.com/zeebo/errs: v1.4.0
  • golang.org/x/xerrors: 9bdfabe

Thanks to all our contributors! 😊

v0.23.3

05 Mar 14:26
f9589b9

Choose a tag to compare

What's Changed

Full Changelog: v0.23.2...v0.23.3

v0.23.2

05 Mar 09:47
8122a62

Choose a tag to compare

What's Changed

Full Changelog: v0.23.1...v0.23.2

v0.23.1

26 Jan 18:23
f52bbb8

Choose a tag to compare

What's Changed

Full Changelog: v0.23.0...v0.23.1

v0.23.0

19 Jan 14:35
129853d

Choose a tag to compare

🔆 Highlights

  • Client: Add subresource Apply support by @alvaroaleman in #3321
  • Conversion: Enable implementation of conversion outside of API packages by @sbueringer in #3335
  • Priorityqueue: Various improvements, bug fixes and now enabled per default
  • Webhooks: Generic Validator and Defaulter by @alvaroaleman in #3360

⚠️ Breaking changes

  • Dependencies: Update to k8s.io/* v1.35 by @alvaroaleman @dongjiang1989 @kannon92 (#3316, #3349, #3386, #3391, #3401)
  • Client: Add subresource Apply support by @alvaroaleman in #3321
  • Events: Migration to the new events API by @clebs in #3262
    • Using the new GetEventRecorderFor requires updating your rbac for events to use the events.k8s.io apiGroup rather than the `` (core) apiGroup
  • Fakeclient: Set ResourceVersion for SSA Create by @alvaroaleman in #3311
  • Webhooks: Generic Validator and Defaulter by @alvaroaleman in #3360
    • Existing code of the form builder.WebhookManagedBy(mgr).For(&corev1.Deployment{}) has to be changed to builder.WebhookManagedBy(mgr, &appsv1.Deployment{})
    • Existing webhook implementations have to be changed to take the concrete object rather than runtime.Object, for example from ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error) to ValidateCreate(ctx context.Context, obj *appsv1.Deployment) (admission.Warnings, error)

✨ Features

  • Cache: Allow fine-granular SyncPeriod configuration by @sbueringer in #3376
  • Client: Add FieldOwner option to client.Options by @aerfio in #3389
  • Client: Add FieldValidation option to client.Options by @aerfio in #3393
  • Conversion: Enable implementation of conversion outside of API packages by @sbueringer in #3335
  • Metrics: Add controller_runtime_reconcile_timeouts_total metric to track ReconciliationTimeout timeouts by @godwinpang in #3382
  • Priorityqueue: Add optional Priority field to reconcile.Result by @sbueringer in #3333
  • Priorityqueue: Enable per default by @sbueringer in #3332
  • Priorityqueue: Use a buffer to optimize priority queue AddWithOpts performance by @zach593 in #3415
  • Source/Kind: Delay reconciliation until handlers sync by @GonzaloLuminary in #3406
  • Webhooks: Add WithContextFunc to WebhookBuilder by @dmvolod in #3324

🐛 Bugfixes

  • Client: Allow SSA after normal resource creation by @filipcirtog in #3346
  • Client: Fix List in namespaced client to list objects that are cluster scoped by @troy0820 in #3351 #3353
  • Envtest: Respect pre-configured binary paths in ControlPlane by @mzhaom in #3372
  • Fakeclient: Fix a number of bugs when updating through apply by @alvaroaleman in #3319
  • FakeClient: Fix Apply with Unstructured ApplyConfiguration and resourceVersion unset by @sbueringer in #3403
  • Fakeclient: Fix SSA after List with non-list kind by @sbueringer in #3364
  • Fakeclient: Panic when trying to build more than one instance of fake.ClientBuilder by @troy0820 in #3314
  • Leaderelection: Copy all parent context values to leader elector's context by @msudheendra-cflt in #3327
  • Metrics: Adding missing exponential buckets on webhook native histogram by @brito-rafa in #3411
  • Priorityqueue: Do FIFO ordering within priorities and not across by @zach593 in #3408
  • Priorityqueue: Don't block on Get when queue is shutdown (2nd try) by @sbueringer in #3337
  • Priorityqueue: Ensure priority queue always returns high-priority items first by @moritzmoe in #3330
  • Priorityqueue: Fix TestWhenAddingMultipleItemsWithRatelimitTrueTheyDontAffectEachOther by @zach593 in #3395
  • Priorityqueue: Limit depthWithPriorityMetric cardinality to 25 by @alvaroaleman #3419
  • Priorityqueue: Properly sync the waiter manipulation by @fossedihelm in #3368
  • setup-envtest: Select the newest Kubernetes by default by @cbandy in #3380
  • testing/addr: Prevent possible leak by avoiding defer in loop by @s-z-z in #3367

🌱 Other

📖 Documentation

Dependencies

Added

  • github.com/Masterminds/semver/v3: v3.4.0
  • github.com/gkampitakis/ciinfo: v0.3.2
  • github.com/gkampitakis/go-diff: v1.3.2
  • github.com/gkampitakis/go-snaps: v0.5.15
  • github.com/goccy/go-yaml: v1.18.0
  • github.com/joshdk/go-junit: v1.0.0
  • github.com/maruel/natural: v1.1.1
  • github.com/mfridman/tparse: v0.18.0
  • github.com/tidwall/gjson: v1.18.0
  • github.com/tidwall/match: v1.1.1
  • github.com/tidwall/pretty: v1.2.1
  • github.com/tidwall/sjson: v1.2.5
  • go.uber.org/automaxprocs: v1.6.0
  • golang.org/x/tools/go/expect: v0.1.0-deprecated
  • golang.org/x/tools/go/pack...
Read more

v0.22.5

19 Jan 14:49
e8e550f

Choose a tag to compare

What's Changed

Full Changelog: v0.22.4...v0.22.5

v0.22.4

03 Nov 14:17
7a1b16d

Choose a tag to compare

What's Changed

Full Changelog: v0.22.3...v0.22.4

v0.22.3

10 Oct 21:41
3e8b259

Choose a tag to compare

What's Changed

Full Changelog: v0.22.2...v0.22.3

v0.22.2

06 Oct 16:56
7fb34b5

Choose a tag to compare

What's Changed

Full Changelog: v0.22.1...v0.22.2

v0.22.1

08 Sep 13:07
6422ed0

Choose a tag to compare

What's Changed

Full Changelog: v0.22.0...v0.22.1