🔆 Highlights
- Client: Native support for Server-Side Apply (SSA) (#3253, #2981)
- Update to k8s.io/* v1.34 dependencies (#3231, #3236, #3246, #3259, #3270, #3300)
- Controller: Implement warmup support for controllers (#3192)
- Priorityqueue: various improvements (#3289, #3290, #3243, #3250)
⚠️ Breaking changes
- Update to k8s.io/* v1.34 dependencies by @alvaroaleman @troy0820 #3231, #3236, #3246, #3259, #3270, #3300
- Client: Add native SSA support by @alvaroaleman in #3253
- Client: Default selector to Nothing if it is nil for
MatchingLabelsSelector
andMatchingFieldsSelector
by @acumino in #3279 - Fakeclient: Add SSA support by @alvaroaleman in #2981
- Fakeclient: Remove support for objects with pointer ObjectMeta by @alvaroaleman in #3228
- Fakeclient: Clear TypeMeta for structured objects by @alvaroaleman in #3229
- Priorityqueue: Make Priority option a pointer by @alvaroaleman in #3289
✨ Features
- Client: Add UnsafeDisableDeepCopy to GetOptions by @jonathan-innis in #3227
- Controller: Add a ReconciliationTimeout option by @alvaroaleman in #3296
- Controller: Implement warmup support for controllers by @godwinpang in #3192
- Envtest: Allow selection of binaries version by release series by @cbandy in #3280
- Manager: Add support for custom labels on leader election leases by @DerekFrank in #3237
- Priorityqueue: WithLowPriorityWhenUnchanged: Set Priority for all add methods by @alvaroaleman in #3290
- Webhooks: Handle panics during conversion more gracefully by @sbueringer in #3278
🐛 Bugfixes
- Envtest: Ensure cleanup validates etcd process state first by @Danil-Grigorev in #3272
- Envtest: Include listening address in kube-apiserver serving certificate by @solidDoWant in #3284
- Fakeclient: Fix some SSA-related bugs by @alvaroaleman in #3268
- Fakeclient: Update passed object in Apply by @alvaroaleman in #3283
- Fakeclient: Validate managed fields on init objects by @alvaroaleman in #3282
- Manager: Prevent goroutine leak on shutdown timeout by @jingyih in #3247
- Priorityqueue: Don't block on Get when queue is shutdown by @dongjiang1989 in #3243
- Priorityqueue: Shutdown on shutdown by @alvaroaleman in #3250
- Unit tests: Fix ginkgo panic in webhook integration test by @sbueringer in #3288
- Unit tests: Fix race condition in Warmup unit test by @sbueringer in #3287
🌱 Other
- Certwatcher: Add instance-specific logger with cert/key k/v pair by @s-z-z in #3293
- Certwatcher: Don't require leader election by @alvaroaleman in #3273
- Examples-builtin: Refactor controller setup to use builder pattern by @s-z-z in #3265
- Fix deprecation warnings by @sbueringer in #3275
- Update golangci-lint to v2.3.0 by @dongjiang1989 in #3266
- Unit tests: Stop using context.Background()/TODO() in tests by @alvaroaleman in #3263
📖 Documentation
- Clarify our versioning scheme by @alvaroaleman in #3264
- Clarify state of Warmup feature by @sbueringer in #3299
- Extend godoc of SyncPeriod field by @guettli in #3269, #3277
- Fix docs for LabelChangedPredicate by @guettli in #3254
- Make pod naming consistent in examples by @clebs in #3251
- Sync admins & maintainers with kubernetes/org by @sbueringer in #3258
Dependencies
Added
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.26.0
- github.com/envoyproxy/go-control-plane/envoy: v1.32.4
- github.com/envoyproxy/go-control-plane/ratelimit: v0.1.0
- github.com/go-jose/go-jose/v4: v4.0.4
- github.com/golang-jwt/jwt/v5: v5.2.2
- github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus: v1.0.1
- github.com/grpc-ecosystem/go-grpc-middleware/v2: v2.3.0
- github.com/spiffe/go-spiffe/v2: v2.5.0
- github.com/zeebo/errs: v1.4.0
- go.etcd.io/raft/v3: v3.6.0
- go.opentelemetry.io/contrib/detectors/gcp: v1.34.0
- go.opentelemetry.io/otel/sdk/metric: v1.34.0
- go.yaml.in/yaml/v2: v2.4.2
- go.yaml.in/yaml/v3: v3.0.4
- sigs.k8s.io/structured-merge-diff/v6: v6.3.0
Changed
- cel.dev/expr: v0.19.1 → v0.24.0
- cloud.google.com/go/compute/metadata: v0.5.0 → v0.6.0
- github.com/cncf/xds/go: b4127c9 → 2f00578
- github.com/cpuguy83/go-md2man/v2: v2.0.4 → v2.0.6
- github.com/emicklei/go-restful/v3: v3.11.0 → v3.12.2
- github.com/envoyproxy/go-control-plane: v0.13.0 → v0.13.4
- github.com/envoyproxy/protoc-gen-validate: v1.1.0 → v1.2.1
- github.com/fsnotify/fsnotify: v1.7.0 → v1.9.0
- github.com/fxamacker/cbor/v2: v2.7.0 → v2.9.0
- github.com/golang/glog: v1.2.2 → v1.2.4
- github.com/google/cel-go: v0.23.2 → v0.26.0
- github.com/google/gnostic-models: v0.6.9 → v0.7.0
- github.com/grpc-ecosystem/grpc-gateway/v2: v2.24.0 → v2.26.3
- github.com/jonboulle/clockwork: v0.4.0 → v0.5.0
- github.com/modern-go/reflect2: v1.0.2 → 35a7c28
- github.com/spf13/cobra: v1.8.1 → v1.9.1
- github.com/spf13/pflag: v1.0.5 → v1.0.6
- go.etcd.io/bbolt: v1.3.11 → v1.4.2
- go.etcd.io/etcd/api/v3: v3.5.21 → v3.6.4
- go.etcd.io/etcd/client/pkg/v3: v3.5.21 → v3.6.4
- go.etcd.io/etcd/client/v3: v3.5.21 → v3.6.4
- go.etcd.io/etcd/pkg/v3: v3.5.21 → v3.6.4
- go.etcd.io/etcd/server/v3: v3.5.21 → v3.6.4
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.58.0 → v0.60.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.33.0 → v1.34.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.33.0 → v1.34.0
- go.opentelemetry.io/otel/metric: v1.33.0 → v1.35.0
- go.opentelemetry.io/otel/sdk: v1.33.0 → v1.34.0
- go.opentelemetry.io/otel/trace: v1.33.0 → v1.35.0
- go.opentelemetry.io/otel: v1.33.0 → v1.35.0
- go.opentelemetry.io/proto/otlp: v1.4.0 → v1.5.0
- google.golang.org/genproto/googleapis/api: e6fa225 → a0af3ef
- google.golang.org/genproto/googleapis/rpc: e6fa225 → a0af3ef
- google.golang.org/grpc: v1.68.1 → v1.72.1
- k8s.io/api: v0.33.0 → v0.34.0
- k8s.io/apiextensions-apiserver: v0.33.0 → v0.34.0
- k8s.io/apimachinery: v0.33.0 → v0.34.0
- k8s.io/apiserver: v0.33.0 → v0.34.0
- k8s.io/client-go: v0.33.0 → v0.34.0
- k8s.io/code-generator: v0.33.0 → v0.34.0
- k8s.io/component-base: v0.33.0 → v0.34.0
- k8s.io/gengo/v2: 1244d31 → 85fd79d
- k8s.io/kms: v0.33.0 → v0.34.0
- k8s.io/kube-openapi: c8a335a → f3f2b99
- k8s.io/utils: 3ea5e8c → 4c0f3b2
- sigs.k8s.io/json: 9aa6b5e → cfa47c3
- sigs.k8s.io/yaml: v1.4.0 → v1.6.0
Removed
- github.com/census-instrumentation/opencensus-proto: v0.4.1
- github.com/golang-jwt/jwt/v4: v4.5.2
- github.com/grpc-ecosystem/go-grpc-middleware: v1.3.0
- github.com/grpc-ecosystem/grpc-gateway: v1.16.0
- go.etcd.io/etcd/client/v2: v2.305.21
- go.etcd.io/etcd/raft/v3: v3.5.21
- google.golang.org/genproto: ef43131
- sigs.k8s.io/structured-merge-diff/v4: v4.6.0
New Contributors
- @DerekFrank made their first contribution in #3237
- @clebs made their first contribution in #3251
- @jingyih made their first contribution in #3247
- @s-z-z made their first contribution in #3265
- @solidDoWant made their first contribution in #3284
Full Changelog: v0.21.0...v0.22.0
Thanks to all our contributors! 😊