v1.9.0-beta.0
Pre-release
Pre-release
github-actions
released this
05 Nov 19:29
·
204 commits
to main
since this release
🚨 This is a BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.31.x
- Workload Cluster: v1.26.x -> v1.31.x
Deprecations and Removals
- The
--clustercachetracker-concurrency
,--clustercachetracker-client-qps
and--clustercachetracker-client-burst
flags on all core CAPI controllers have been renamed to--clustercache-concurrency
,--clustercache-client-qps
and--clustercache-client-burst
- ClusterCacheTracker: Deprecate CCT ErrClusterLocked (#11340)
- ClusterCacheTracker: Deprecate ClusterCacheTracker (#11312)
- API: Deprecate FailureMessage and FailureReason (#11317)
More details about the release
More information about version support can be found here
Changes since v1.8.0
📈 Overview
- 238 new commits merged
- 3 breaking changes
⚠️ - 24 feature additions ✨
- 27 bugs fixed 🐛
⚠️ Breaking Changes
- Machine: Ignore attached Volumes referred by pods ignored during drain (#11246)
- util: Fix object logging in predicates (#11239)
- util: Fix object logging in ResourceHasFilterLabel, ResourceNotPaused & ResourceNotPausedAndHasFilterLabel predicates (#11188)
✨ New Features
- API: Add v1beta2 structs to object status (#11234)
- API: Update machine with v1beta2 status (#11276)
- API: Update machineset with v1beta2 status test (#11278)
- ClusterCacheTracker: Introduce new ClusterCache (#11247)
- ClusterClass: Add support for oneOf/anyOf/allOf/not ClusterClass variable schema constructs (#10637)
- clusterctl: Allow user to suppress API warnings (#11149)
- clusterctl: Suppress "finalizer name" API warnings in "move" command (#11173)
- Dependency: Bump to controller-runtime v0.19 & controller-tools v0.16 (#10803)
- e2e: Bump Kubernetes to v1.31.0-rc.1 (#11021)
- e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10965)
- e2e: Detect panics in e2e tests (#11066)
- KCP: Add v1beta2 Etcd and ControlPlaneComponents conditions to KCP (#11302)
- KCP: Add v1beta2 OwnerRemediated condition to KCP (#11297)
- Logging: Suppress finalizer name API warnings in CAPI, CABPK, and KCP controller logs (#11242)
- Machine: Introduce Deletion status field and add timestamps for drain and volumeDetach instead of using the condition (#11166)
- Machine: Refactor node drain (#11074)
- MachineDeployment: Add v1beta2 condition to MD controller (#11338)
- MachineHealthCheck: Update MHC with v1Beta2 status (#11290)
- MachineSet: Promote MachineSetPreflightChecks to Beta (#11228)
- KCP/CAPD: Add more v1beta2 conditions to KCP (#11320)
- Testing: Bump Kubernetes in tests to v1.31.0 and claim support for v1.31 (#11030)
- Testing: Collect additional logs with CAPD log collector (#11083)
- util: Implement utils for v1beta2 conditions (#10997)
- util: Warning handler that discards messages that match a regular expression (#11179)
🐛 Bug Fixes
- API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10972)
- API: Fix panics in SetV1Beta2Conditions methods (#11369)
- API: Re-add /finalizers subresource RBAC (#11106)
- Bootstrap: Always declare try-or-die-command function in kubeadm-bootstrap-script.sh (#11089)
- CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#10983)
- CAPD: Ensure DockerMachinePool providerIDList is deterministic (#10998)
- CI: Hack: fix the shell used when running pr-verify (#11169)
- ClusterCacheTracker: Try to fix TestClusterCacheHealthCheck test (#11343)
- ClusterClass: Fix nil pointer for empty workers in webhook (#11197)
- ClusterClass: Fix RuntimeClient nil check in ClusterClass controller (#11350)
- clusterctl: Ensure move uses mutated metadata when updating a target object (#10957)
- clusterctl: Handle a nil mutator by returning an error, not panicking (#10951)
- Dependency: Update controller-runtime dependency to v0.18.5 (#11045)
- KCP: Consider all machines for setting .status.version (#11304)
- KCP: Make KCP pre-terminate hook more robust (#11161)
- KCP: Remove etcd member in pre-terminate hook (#11137)
- Logging: Log errors on specific log levels correctly (#11233)
- Machine: Fix drain log for unreachable Nodes (#11147)
- Machine: Machine Controller should try to retrieve node on delete (#11032)
- Release: Set previous release tag version for RELEASE CANDIDATE/BETA RELEASE (#10435)
- Testing: Add race option to detect raced codes (#10899)
- Testing: Fix CRS test flake (#11009)
- Testing: Fix: incorrect name used in kustomize path (#11305)
- Testing: Test/framework isDockerCluster should check that infra ref is present (#10971)
- util: Fix conditions hasSameState nil pointer dereference (#11254)
- util: Fix conditions lexicographicLess nil pointer dereference (#11255)
- util: Fix sorting of v1beta2 conditions when patching (#11326)
🌱 Others
- API: Add maxItems to all condition fields (#11256)
- API: Deprecate FailureMessage and FailureReason (#11317)
- API: Refactor godoc for API fields starting with field names (#11273)
- API: Remove duplicate ca injection via kustomize (#10969)
- API: Remove unused Paused conditions & minor MHC godoc fixes (#11298)
- API: V1beta2 conditions: add function for setting the Paused condition (#11284)
- CI: Bump golangci to v1.60.2 (#11132)
- CI: Fix exclude for revision management in .golangci.yml (#11060)
- CI: Golangci: add comments to enabled linters (#11142)
- CI: Pr-verify: use env var for passing the PR title (#11229)
- CI: Replace kubebuilder-release-tools with new workflow (#11062)
- CI: Switch to using ECR mirror for trivy DB repo in weekly security scan (#11260)
- CI: Update version matrix for github workflows (#10963)
- ClusterCacheTracker: Add cacheSyncPeriod option to ClusterCacheTracker (#11248)
- ClusterCacheTracker: Deprecate CCT ErrClusterLocked (#11340)
- ClusterCacheTracker: Deprecate ClusterCacheTracker (#11312)
- ClusterCacheTracker: Fix flake in TestClusterReconciler (#11314)
- ClusterClass: Improve reconcile state logs (don't log empty diff) (#11013)
- ClusterClass: Make Type in ClusterClass variable schema properly optional (#11259)
- clusterctl: Add Canonical Kubernetes providers (#11337)
- clusterctl: Add vultr infrastructure provider (#11091)
- clusterctl: Bump cert manager to v1.16.0 (#11263)
- clusterctl: Bump cert-manager to 1.15.3 (#11068)
- clusterctl: Bump cert-manager to 1.16.1 (#11322)
- clusterctl: Bump cert-manager to v1.15.2 (#10988)
- clusterctl: GitLab can use both Path and RawPath (#10608)
- clusterctl: Improve clusterctl client config logic & error message (#11049)
- clusterctl: Update Config generation to use inClusterConfig (#10729)
- clusterctl: Update RKE2 provider URL (#11216)
- Core: Refactor Cluster controller (#11345)
- Dependency: Bump Go to v1.22.8 version (#11357)
- Dependency: Bump setup-envtest to v0.19 (#11063)
- Dependency: Bump to Go 1.22.7 (#11156)
- Dependency: Remove Go dependencies on k8s.io/kubectl, k8s.io/metrics, sigs.k8s.io/kustomize, ... (#11295)
- Devtools: Fix parsing of
config.live_reload_deps
from Tilt provider config file (#11270) - e2e: Add dry-run CreateOrUpdate call in clusterctl upgrade e2e tests (#11349)
- e2e: Bump kind to v0.24.0 (#11081)
- e2e: Dump cluster resources if deletion times out (#10961)
- e2e: Export scale e2e test to make it reusable by providers (#11333)
- e2e: Improve error output of ValidateResourceVersionStable (#11012)
- e2e: Remove json logging replacement in e2e test config (#11318)
- e2e: Remove redundant self-hosted and clusterctl upgrade tests (#11073)
- e2e: Test/e2e: decrease concurrency (#11220)
- e2e: Test/e2e: increase concurrency (#11067)
- e2e: Test/framework: scale up should use allocatable memory (#11004)
- e2e: Test: add coverage to find issues running on the next kubernetes release as management cluster (#10984)
- e2e: Test: add PreWaitForControlplaneToBeUpgraded to ClusterUpgradeConformanceSpec (#11145)
- e2e: Test: Bump autoscaler to v1.31.0 (#11111)
- e2e: Test: improve autoscale tests for to/from zero and running autoscaler in bootstrap cluster (#11082)
- e2e: Test: stop using Consistently for rollout checks (#10975)
- e2e: Test: use cluster without worker definition for kcp only test (#11212)
- KCP: Add NamingStrategy to KubeadmControlPlane (#11123)
- KCP: Bump corefile-migration to support CoreDNS v1.11.3 (#10980)
- KCP: Ensure ReadinessGates for v1beta2 conditions get set (#11335)
- KCP: Propagate timeouts to Machines with deletionTimestamp (#11128)
- KCP: Remove code handling Kubernetes <= v1.21 (#11146)
- KCP: Skip validation if CoreDNS migration library supports an upgrade if the library is not used (#11319)
- Logging: Drop internal log package & improve logs and errors (#11025)
- Logging: Drop ReconcileError events (#11341)
- Logging: Fix error handling when the resource is not found (#10907)
- Logging: Improve log when not enough replicas are ready or referenced (#11329)
- Logging: Log controller name in predicates (#10959)
- Logging: Log error when calling a Runtime Extension gets an error that is ignored because of failure policy (#11028)
- Logging: Reduce verbosity of logs when calling Runtime Extensions (#11183)
- Machine: Condition: fix godoc for MachineNodeHealthyCondition (#11178)
- Machine: Follow-up PR nits from 11032 (#11044)
- Machine: Implement Machine Deleting condition (#11291)
- Machine: Improve machine Ready v1beta2 condition (#11330)
- Machine: Improve node drain e2e test (#11127)
- Machine: Improve unit tests for Machine controller (#11252)
- Machine: Prevent error spamming for NodeOutdatedTaint if objects are not found (#11148)
- Machine: Use internal error reason consistently (#11309)
- MachineHealthCheck: Increase timeout for 2 MHC unit tests (#11019)
- MachinePool: Improve TestReconcileMachinePoolMachines unit test (#11124)
- Metrics: Add nilIsZero to all KSM metric configs where needed (#11101)
- Metrics: Revert "Add nilIsZero to all KSM metric configs where needed" (#11107)
- Machine/KCP: Implement grace period for KCP remote conditions (#11339)
- MachineSet/MachineDeployment: Foreground deletion for MachineDeployments and MachineSets (#11174)
- Testing/Runtime SDK: Add nodeVolumeDetachTimeout & minReadySeconds for MD to RuntimeSDK e2e test template (#10933)
- Release: Add v1.9 release team members to timeline doc (#11097)
- Release: Prepare main branch for v1.9 development (#11059)
- Release: Swap in new 1.9 RT members in OWNERS (#11096)
- Testing: Bump coredns version in e2e variables (#11187)
- Testing: Bump envtest in Makefile to v1.31.0 (#11085)
- Testing: Check for panics during test runs in envtest (#11279)
- Testing: Enable race detector for main module unit tests (#11207)
- Testing: Make
internal/test/builder
package public (asutil/test/builder
) (#11356) - Testing: Test/framework: Allow ScaleUp Deployment image to be customized (#10990)
- Testing: Test/framework: allow to include arbitrary types when dumping resources (#11308)
- Testing: Test/framework: allow users to modify cache.Options (#11201)
- Testing: Test/framework: GetCAPIResources should warn on rbac issues (#11205)
- Testing: Use latest atomic variable instead of old one (#11328)
- util: Add input validations for controllers (#11327)
- util: Add support for v1beta2 conditions to patch helper (#11150)
- util: Deprecate obsolete errors pkg (#10798)
- util: Deprecate old pausing predicates (#11300)
- util: Export conditions.HasSameState method (#11253)
- util: Handle finalizers early in Reconciles (#11286)
- util: Improve sort for v1beta2 conditions (#11282)
- util: Make controller mandatory param for external object tracker (#11283)
- util: Remove clustercache nil checks (#11336)
- util: Remove previously deprecated --metrics-bind-addr flag (#11140)
- util: Truncate lastTransitionTime for v1beta2 conditions (#11342)
- util: Use TODO instead of FIXME consistently (#11245)
- util: Use url.JoinPath instead of fmt to concat endpoint (#10917)
- util: V1beta2 conditions: make NewAggregate use generics (#11281)
📖 Additionally, there have been 44 contributions to our documentation and book. (#10425, #10519, #10651, #10897, #10960, #11051, #11055, #11056, #11061, #11072, #11076, #11087, #11088, #11109, #11113, #11118, #11119, #11121, #11131, #11153, #11163, #11180, #11189, #11190, #11191, #11194, #11195, #11202, #11208, #11213, #11214, #11223, #11235, #11236, #11241, #11250, #11251, #11274, #11275, #11285, #11287, #11293, #11354, #11355)
Dependencies
Added
- cel.dev/expr: v0.15.0
- dario.cat/mergo: v1.0.1
- github.com/antlr4-go/antlr/v4: v4.13.0
- gopkg.in/evanphx/json-patch.v4: v4.12.0
Changed
- github.com/Masterminds/semver/v3: v3.2.0 → v3.3.0
- github.com/Masterminds/sprig/v3: v3.2.3 → v3.3.0
- github.com/adrg/xdg: v0.5.0 → v0.5.1
- 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/cncf/xds/go: 0fa0005 → 555b57e
- github.com/coredns/corefile-migration: v1.0.23 → v1.0.24
- github.com/creack/pty: v1.1.18 → v1.1.9
- github.com/fatih/color: v1.17.0 → v1.18.0
- github.com/fxamacker/cbor/v2: v2.6.0 → v2.7.0
- github.com/go-openapi/swag: v0.22.3 → v0.22.4
- github.com/gobuffalo/flect: v1.0.2 → v1.0.3
- github.com/golang/glog: v1.2.0 → v1.2.1
- github.com/google/cel-go: v0.17.8 → v0.20.1
- github.com/google/pprof: a892ee0 → fa2c70b
- github.com/grpc-ecosystem/grpc-gateway/v2: v2.16.0 → v2.20.0
- github.com/huandu/xstrings: v1.3.3 → v1.5.0
- 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.19.1 → v2.20.2
- github.com/onsi/gomega: v1.34.0 → v1.34.2
- github.com/prometheus/client_golang: v1.18.0 → v1.19.1
- github.com/prometheus/client_model: v0.6.0 → v0.6.1
- github.com/prometheus/common: v0.45.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/shopspring/decimal: v1.3.1 → v1.4.0
- github.com/sirupsen/logrus: v1.9.0 → v1.9.3
- github.com/spf13/cast: v1.6.0 → v1.7.0
- go.etcd.io/bbolt: v1.3.8 → v1.3.9
- go.etcd.io/etcd/api/v3: v3.5.15 → v3.5.16
- go.etcd.io/etcd/client/pkg/v3: v3.5.15 → v3.5.16
- go.etcd.io/etcd/client/v2: v2.305.12 → v2.305.13
- go.etcd.io/etcd/client/v3: v3.5.15 → v3.5.16
- 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.49.0 → v0.53.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.49.0 → v0.53.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.20.0 → v1.27.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.20.0 → v1.28.0
- go.opentelemetry.io/otel/metric: v1.24.0 → v1.28.0
- go.opentelemetry.io/otel/sdk: v1.20.0 → v1.28.0
- go.opentelemetry.io/otel/trace: v1.24.0 → v1.28.0
- go.opentelemetry.io/otel: v1.24.0 → v1.28.0
- go.opentelemetry.io/proto/otlp: v1.0.0 → v1.3.1
- golang.org/x/crypto: v0.25.0 → v0.28.0
- golang.org/x/exp: 9212866 → 8a7402a
- golang.org/x/mod: v0.17.0 → v0.20.0
- golang.org/x/net: v0.27.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.22.0 → v0.26.0
- golang.org/x/telemetry: f48c80b → bda5523
- golang.org/x/term: v0.22.0 → v0.25.0
- golang.org/x/text: v0.16.0 → v0.19.0
- golang.org/x/tools: e35e4cc → v0.24.0
- google.golang.org/genproto/googleapis/api: a219d84 → 5315273
- google.golang.org/genproto/googleapis/rpc: 6e1732d → f6361c8
- google.golang.org/grpc: v1.62.2 → v1.65.1
- google.golang.org/protobuf: v1.34.1 → v1.34.2
- k8s.io/api: v0.30.3 → v0.31.2
- k8s.io/apiextensions-apiserver: v0.30.3 → v0.31.2
- k8s.io/apimachinery: v0.30.3 → v0.31.2
- k8s.io/apiserver: v0.30.3 → v0.31.2
- k8s.io/client-go: v0.30.3 → v0.31.2
- k8s.io/cluster-bootstrap: v0.30.3 → v0.31.2
- k8s.io/code-generator: v0.30.3 → v0.31.2
- k8s.io/component-base: v0.30.3 → v0.31.2
- k8s.io/klog/v2: v2.120.1 → v2.130.1
- k8s.io/kms: v0.30.3 → v0.31.2
- k8s.io/utils: b307cd5 → 18e509b
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.30.0 → v0.30.3
- sigs.k8s.io/controller-runtime: v0.18.4 → v0.19.1
Removed
- github.com/antlr/antlr4/runtime/Go/antlr/v4: 8188dc5
- github.com/chai2010/gettext-go: v1.0.2
- github.com/chromedp/cdproto: 3cf4e6d
- github.com/chromedp/chromedp: v0.9.2
- github.com/chromedp/sysutil: v1.0.0
- github.com/cncf/udpa/go: c52dc94
- github.com/daviddengcn/go-colortext: v1.0.0
- github.com/exponent-io/jsonpath: d6023ce
- github.com/fatih/camelcase: v1.0.0
- github.com/fvbommel/sortorder: v1.1.0
- github.com/go-errors/errors: v1.4.2
- github.com/go-task/slim-sprig: 52ccab3
- github.com/gobwas/httphead: v0.1.0
- github.com/gobwas/pool: v0.2.1
- github.com/gobwas/ws: v1.2.1
- github.com/golangplus/bytes: v1.0.0
- github.com/golangplus/fmt: v1.0.0
- github.com/golangplus/testing: v1.0.0
- github.com/google/shlex: e7afc7f
- github.com/liggitt/tabwriter: 89fcab3
- github.com/lithammer/dedent: v1.1.0
- github.com/matttproud/golang_protobuf_extensions/v2: v2.0.0
- github.com/mitchellh/go-wordwrap: v1.0.1
- github.com/monochromegane/go-gitignore: 205db1a
- github.com/sergi/go-diff: v1.1.0
- github.com/xlab/treeprint: v1.2.0
- go.starlark.net: a134d8f
- k8s.io/cli-runtime: v0.30.3
- k8s.io/component-helpers: v0.30.3
- k8s.io/kubectl: v0.30.3
- k8s.io/metrics: v0.30.3
- sigs.k8s.io/kustomize/api: 6ce0bf3
- sigs.k8s.io/kustomize/cmd/config: v0.11.2
- sigs.k8s.io/kustomize/kustomize/v5: 6ce0bf3
- sigs.k8s.io/kustomize/kyaml: 6ce0bf3
_Thanks to all our contributors!_ 😊