Visitar URL original
Releases · kubernetes-sigs/controller-runtime · GitHub
Skip to content

Releases

v0.25.2

Choose a tag to compare

@alvaroaleman alvaroaleman released this 01 Oct 13:39
5d8467b

What's Changed

Full Changelog: v0.25.1...v0.25.2

v0.25.1

Choose a tag to compare

@alvaroaleman alvaroaleman released this 14 Sep 01:39
67b72c2

What's Changed

Full Changelog: v0.25.0...v0.25.1

v0.25.0

Choose a tag to compare

@sbueringer sbueringer released this 03 Sep 15:08
e8f9455

Highlights

This version of controller-runtime introduces a new experimental ReadYourWritesConsistency feature,
which ensures that all writes are reflected in subsequent reads from the default cache-backed client.
Stale client reads are arguably the biggest source of friction and sometimes bugs for controller
authors, providing this functionality at the library level eliminates that class of problems entirely.

Try it out by setting Client.EnableReadYourWritesConsistency: new(true) in your manager
and leave any feedback you may have on the tracking issue.

⚠️ Breaking Changes

✨ New Features

  • Client: Add a read-your-own-writes client (#3472)
  • Fakeclient: Add WithGlobalResourceVersionCounter (#3581)
  • Fakeclient: Add scale subresource support for Apply (#3569)
  • Metrics: Allow opt-in for client-go REST client metrics (#3510)
  • Metrics: Allow overriding client-go REST client metrics latency histogram buckets (#3573)
  • Source: Add TypedInformer source (#3520)
  • Webhooks: Allow to disable the webhook server by setting the port to -1 (#3481)

🐛 Bug Fixes

  • Cache: Fix goroutine leaks in cache Start() methods (#3565)
  • Client: Fix regression in Apply typed error handling (#3515)
  • Controller: Unlock when Controller.Start() returns with error (#3545)
  • Envtest: Fix envtest process stop on Windows (#3519)
  • Fakeclient: Allow updating managedFields through Update (#3585)
  • Fakeclient: Fix AddIndex panic when wrapped with an interceptor (#3583)
  • Fakeclient: Fix PartialObjectMeta handling (#3571)
  • Fakeclient: Support scale subresource get/update for unstructured objects (#3546)
  • Fakeclient: Update object on subresource apply (#3570)
  • PriorityQueue: Fix PriorityQueue deadlock on shutdown (#3540)
  • Testing/Process: Fix process Stop timeout error handling (#3523)

🌱 Others

  • LeaderElection: Pass Managers Logger to Leader Elector via Context (#3576)

🌱 CI & linters

  • Add copyright header validation & fix findings (#3544)
  • Bump to golangci-lint v2.12.1 (#3514)
  • Bump to golangci-lint v2.12.2 (#3532)
  • Bump to golangci-lint v2.13.1 (#3580)
  • Declare contents: read permissions for pr-verify action (#3517)
  • Revert "Migrate away from custom GitHub action approval workflow" (#3528)

📖 Additionally, there have been 7 contributions to our documentation and book. (#3513, #3521, #3531, #3551, #3562, #3563, #3566)

Dependencies

Added

  • github.com/go-openapi/swag/cmdutils: v0.27.1
  • github.com/go-openapi/swag/conv: v0.27.1
  • github.com/go-openapi/swag/fileutils: v0.27.1
  • github.com/go-openapi/swag/jsonutils/fixtures_test: v0.27.1
  • github.com/go-openapi/swag/jsonutils: v0.27.1
  • github.com/go-openapi/swag/loading: v0.27.1
  • github.com/go-openapi/swag/mangling: v0.27.1
  • github.com/go-openapi/swag/netutils: v0.27.1
  • github.com/go-openapi/swag/pools: v0.27.1
  • github.com/go-openapi/swag/stringutils: v0.27.1
  • github.com/go-openapi/swag/typeutils: v0.27.1
  • github.com/go-openapi/swag/yamlutils: v0.27.1
  • github.com/go-openapi/testify/enable/yaml/v2: v2.6.0
  • github.com/go-openapi/testify/v2: v2.6.0

Changed

  • github.com/Azure/go-ansiterm: 306776e → faa5f7b
  • github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.30.0 → v1.32.0
  • github.com/antlr4-go/antlr/v4: v4.13.0 → v4.13.1
  • github.com/cncf/xds/go: ee656c7 → dba9d58
  • github.com/envoyproxy/go-control-plane/envoy: v1.36.0 → v1.37.0
  • github.com/envoyproxy/protoc-gen-validate: v1.3.0 → v1.3.3
  • github.com/fxamacker/cbor/v2: v2.9.0 → v2.9.1
  • github.com/go-jose/go-jose/v4: v4.1.3 → v4.1.4
  • github.com/go-openapi/jsonpointer: v0.21.0 → v1.0.0
  • github.com/go-openapi/jsonreference: v0.20.2 → v1.0.0
  • github.com/go-openapi/swag: v0.23.0 → v0.27.1
  • github.com/golang-jwt/jwt/v5: v5.3.0 → v5.3.1
  • github.com/google/cel-go: v0.26.0 → v0.29.2
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.27.7 → v2.29.0
  • github.com/klauspost/compress: v1.18.0 → v1.19.0
  • github.com/moby/term: v0.5.0 → v0.5.2
  • github.com/prometheus/client_golang: v1.23.2 → v1.24.0
  • github.com/prometheus/common: v0.67.5 → v0.70.0
  • github.com/prometheus/procfs: v0.19.2 → v0.21.1
  • github.com/sirupsen/logrus: v1.9.3 → v1.9.4
  • github.com/spf13/pflag: v1.0.9 → v1.0.10
  • github.com/stretchr/objx: v0.5.2 → v0.5.3
  • go.etcd.io/bbolt: v1.4.3 → v1.5.0
  • go.etcd.io/etcd/api/v3: v3.6.8 → v3.7.0
  • go.etcd.io/etcd/client/pkg/v3: v3.6.8 → v3.7.0
  • go.etcd.io/etcd/client/v3: v3.6.8 → v3.7.0
  • go.etcd.io/etcd/pkg/v3: v3.6.8 → v3.7.0
  • go.etcd.io/etcd/server/v3: v3.6.8 → v3.7.0
  • go.etcd.io/raft/v3: v3.6.0 → v3.7.0
  • go.opentelemetry.io/contrib/detectors/gcp: v1.39.0 → v1.43.0
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.65.0 → v0.68.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.65.0 → v0.69.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.40.0 → v1.44.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.40.0 → v1.44.0
  • go.opentelemetry.io/otel/metric: v1.41.0 → v1.44.0
  • go.opentelemetry.io/otel/sdk/metric: v1.40.0 → v1.44.0
  • go.opentelemetry.io/otel/sdk: v1.40.0 → v1.44.0
  • go.opentelemetry.io/otel/trace: v1.41.0 → v1.44.0
  • go.opentelemetry.io/otel: v1.41.0 → v1.44.0
  • go.opentelemetry.io/proto/otlp: v1.9.0 → v1.10.0
  • go.yaml.in/yaml/v2: v2.4.3 → v2.4.4
  • golang.org/x/crypto: v0.47.0 → v0.54.0
  • golang.org/x/exp: 944ab1f → 746e56f
  • golang.org/x/mod: v0.32.0 → v0.37.0
  • golang.org/x/net: v0.49.0 → v0.57.0
  • golang.org/x/oauth2: v0.34.0 → v0.36.0
  • golang.org/x/sync: v0.19.0 → v0.22.0
  • golang.org/x/sys: v0.40.0 → v0.47.0
  • golang.org/x/telemetry: bd525da → 59b4966
  • golang.org/x/term: v0.39.0 → v0.45.0
  • golang.org/x/text: v0.33.0 → v0.40.0
  • golang.org/x/time: v0.14.0 → v0.15.0
  • golang.org/x/tools: v0.41.0 → v0.47.0
  • gonum.org/v1/gonum: v0.16.0 → v0.17.0
  • google.golang.org/genproto/googleapis/api: 8636f87 → 3dc84a4
  • google.golang.org/genproto/googleapis/rpc: 8636f87 → 3dc84a4
  • google.golang.org/grpc: v1.79.3 → v1.82.1
  • k8s.io/api: v0.36.0 → v0.37.0
  • k8s.io/apiextensions-apiserver: v0.36.0 → v0.37.0
  • k8s.io/apimachinery: v0.36.0 → v0.37.0
  • k8s.io/apiserver: v0.36.0 → v0.37.0
  • k8s.io/client-go: v0.36.0 → v0.37.0
  • k8s.io/code-generator: v0.36.0 → v0.37.0
  • k8s.io/component-base: v0.36.0 → v0.37.0
  • k8s.io/gengo/v2: ec3ebc5 → 25e2208
  • k8s.io/kms: v0.36.0 → v0.37.0
  • k8s.io/kube-openapi: 43fb72c → d427ff9
  • k8s.io/streaming: v0.36.0 → v0.37.0
  • k8s.io/utils: b8788ab → be93311
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.34.0 → v0.36.0
  • sigs.k8s.io/structured-merge-diff/v6: v6.3.2 → v6.4.2

Removed

  • github.com/creack/pty: v1.1.9
  • github.com/gogo/protobuf: v1.3.2
  • github.com/josharian/intern: v1.0.0
  • github.com/kr/pty: v1.1.1
  • github.com/mailru/easyjson: v0.7.7
  • github.com/matttproud/golang_protobuf_extensions: v1.0.1
  • github.com/stoewer/go-strcase: v1.3.0

_Thanks to all our...

Read more

v0.24.1

Choose a tag to compare

@alvaroaleman alvaroaleman released this 12 May 16:06
3be3f1b

What's Changed

Full Changelog: v0.24.0...v0.24.1

v0.24.0

Choose a tag to compare

@sbueringer sbueringer released this 30 Apr 12:33
d3eaef3

⚠️ 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

Choose a tag to compare

@sbueringer sbueringer released this 05 Mar 14:26
f9589b9

What's Changed

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

v0.23.2

Choose a tag to compare

@sbueringer sbueringer released this 05 Mar 09:47
8122a62

What's Changed

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

v0.23.1

Choose a tag to compare

@alvaroaleman alvaroaleman released this 26 Jan 18:23
f52bbb8

What's Changed

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

v0.23.0

Choose a tag to compare

@sbueringer sbueringer released this 19 Jan 14:35
129853d

🔆 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

Choose a tag to compare

@sbueringer sbueringer released this 19 Jan 14:49
e8e550f

What's Changed

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