Skip to content

v1.14.0-alpha.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Jun 18:47
· 2 commits to main since this release
5e3e9cc

🚨 This is a ALPHA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.

More details about the release

⚠️ ALPHA RELEASE NOTES ⚠️

More information about version support can be found here

Changes since v1.13.0

📈 Overview

  • 153 new commits merged
  • 7 breaking changes ⚠️
  • 13 feature additions ✨
  • 12 bugs fixed 🐛

⚠️ Breaking Changes

  • CAPD: Mark docker resources as deprecated (#13557)
  • CAPD: Migrate ClusterClass changes e2e test from the docker to the in-memory backend (#13764)
  • CAPD: Migrate templates to use Dev* instead of Docker* (#13741)
  • Dependency: Bump to controller-runtime v0.24 & controller-tools v0.21 (#13651)
  • e2e: Migrate e2e tests from using Docker* resources to Dev* resources (#13647)
  • e2e: Migrate test extension to use Dev* instead of Docker* (#13716)
  • Misc: Fix minor goroutine leak in util/cache after controller shutdown (#13487)

✨ New Features

  • API: Introduce separate API module (#13762)
  • API: Move OpenAPI schema out of the api package to avoid direct dependency on kube-openapi in the api module (#13825)
  • Bootstrap: Write kubeadm control plane version file for workers to use to fetch the matching kubeadm binary (#13433)
  • CAPD: Introduce per-reconciler concurrency flags in CAPDev (#13740)
  • Cluster: Use regular patch instead of SSA to patch Cluster in topology controller (#13760)
  • ClusterCache: Expose and use DefaultTransform on CacheOptions (#13780)
  • ClusterCache: Use DefaultTransform in core CAPI, CABPK and KCP (#13820)
  • ClusterClass/KCP/MachineSet: Implement stale controller mitigation in KCP / MS / Cluster topology controller (#13737)
  • clusterctl: Add experimental clusterctl convert command (#12843)
  • Dependency: Bump Go 1.26 (#13623)
  • MachineDeployment/util: Stale controller mitigation in reconcile wrapper & MD controller, enable store & fifo informer metrics (#13720)
  • Misc: Implement managedFields interning (#13807)
  • Release: Prepare main branch for v1.14 development (#13617)

🐛 Bug Fixes

  • CAPD: Fix CAPD flakes (#13757)
  • CAPD: Fix E2E host port binding lookup (#13627)
  • clusterctl: Skip update check for clusterctl completion (#13653)
  • Dependency: Fix CVE-2026-39883 (#13571)
  • Devtools: Fix Tilt kube-state-metrics deployment (#13677)
  • e2e: Fix self-hosted test (#13778)
  • KCP: Fix failing TestKubeadmControlPlaneReconciler_reconcileEtcdMembers (#13717)
  • KCP: Fix KCP in-place update with InfraMachine webhooks with immutability validation (#13640)
  • KCP: KCP deletion should tolerate missing InfraTemplates (#13558)
  • Machine/Bootstrap: Perform draining and volume detachment once until completion (#11590)
  • MachineDeployment: Fix nil pointer panic when paused with no matching MachineSet (#13827)
  • Release: Revert unset GOCACHE env var (#13732)

🌱 Others

  • API/Runtime SDK/IPAM/MachinePool/MachineSet/MachineDeployment: Fix typos in generated CRD descriptions (#13641)
  • CABPK: Use ClusterClass with RuntimeSDK in kubeadm join old Node e2e test & fix e2e test failures (#13759)
  • CAPD: Add support for controller restart to in-memory backend (#13595)
  • CAPD: Only add finalizer after InfraMachine has owner in CAPDev (#13714)
  • CAPD: Partially revert fix self-hosted test (#13795)
  • CAPD: Refactor CAPDev reconciler (#13702)
  • CI: Add cron buckets to prow generator (#13656)
  • CI: Add KCP infra adoption test (#13731)
  • CI: Drop jobs on release-1.11 (#13593)
  • CI: Fix link in cloudbuild.yaml's (#13793)
  • CI: Fix linter findings in hack/tools (#13814)
  • CI: Harden git workflows (#13442)
  • CI: Make it possible to exclude CVEs with govulncheck (#13669)
  • CI: Read permissions for pr-verify action (#13687)
  • CI: Replace deprecated gaurav-nelson/github-action-markdown-link-check with tcort fork (#13572)
  • CI: Revert "Migrate away from custom GitHub action approval workflow" (#13802)
  • CI: Stop running make lint-api multiple times in the GitHub action (#13824)
  • ClusterCache: Cleanup ClusterCache metrics for deleted Clusters (#13660)
  • clusterctl/Misc: Avoid building if LDFLAGS returns error checking for SemVer (#13418)
  • clusterctl: Add cloudscale-ch-cloudscale provider (#13544)
  • clusterctl: Bump Cert-manager v1.20.2 (#13583)
  • clusterctl: Improve clusterctl describe (#13753)
  • Control-plane: Add additional test cases for EnsureKubeadmPermissions (#13758)
  • Control-plane: Remove unused functions in internal/contract (#13826)
  • Dependency: 1.26.3 (#13661)
  • Dependency: Bump envtest 1.36 (#13657)
  • Dependency: Bump go to v1.26.4 (#13788)
  • Dependency: Bump golang/x/net to 0.55.0 (#13744)
  • Devtools: Add Headlamp to Tilt dev environment (#13538)
  • Devtools: Add log dashboard (#13594)
  • Devtools: Bump headlamp CAPI plugin to 0.2.0-beta.0 (#13783)
  • Devtools: Fix gosec lint findings (#13709)
  • Devtools: Upgrade tempo & fix configuration (#13727)
  • e2e: Add options to runtimesdk e2e test (#13750)
  • e2e: Bump to kind main to fix e2e tests (#13767)
  • e2e: Bump to kind v0.32.0 (#13781)
  • e2e: Cleanup of ControlPlaneKubeletLocalMode handling in KCP adoption test (#13695)
  • e2e: Cleanup unused e2e test templates (#13713)
  • e2e: Enable opt-out of OwnerReferencesPermissionEnforcement admission controller & opt-out in clusterctl upgrade tests (#13819)
  • e2e: Fix E2E chained upgrade (#13618)
  • e2e: Improve handling of missing kind versions (#13642)
  • e2e: Start testing against Kubernetes v1.37 (#13614)
  • e2e: Start testing with K8s 1.36.0 (#13611)
  • e2e: Start testing with Kubernetes v1.36.0-rc.0 (#13564)
  • e2e: Start testing with Kubernetes v1.36.0-rc.1 (#13585)
  • e2e: Use Runtime SDK for kcp-infra-adoption e2e test (#13809)
  • KCP: Add kubeadm cluster role (#13664)
  • KCP: KCP cleanup etcd members not started after a machine is remediated (#13685)
  • KCP: Update RemoveEtcdMember to accept a *etcd.Member instead of a member name (#13784)
  • Machine: Improve machine controller in-place update unit tests (#13682)
  • MachineDeployment: Extend stale controller mitigation in MD controller to MS deletion (#13730)
  • MachineSet: Cleanup orphaned BoostrapConfigs / InfraMachines in MS controller (#13812)
  • Misc: Add finalizer only after we got owner/cluster (#13747)
  • Misc: Correct typos in comments and error messages (#13756)
  • Misc: Delete unused nolint directives (#13710)
  • Misc: Fix static check lint errors (#13708)
  • Misc: Improve conversion webhook aliasing (#13828)
  • Misc: Replace reflect.Ptr with reflect.Pointer (#13707)
  • Misc: Update Kubernetes bump issue template (#13693)
  • Release: Add workaround for generate release notes (#13655)
  • Release: Optimize go build in make release-binary (#13499)
  • Runtime SDK: Do not follow redirects when calling runtime extensions (#13763)
  • Runtime SDK: Surface Runtime Extension errors in conditions (#13813)
  • Security: Updated gitignore (#13799)
  • Testing/Documentation/e2e: Improve support for OwnerReferencesPermissionEnforcement admission controller (#13805)
  • Testing: Add a test case to confirm that kcp can safely remove a member when it doesn't have a corresponding machine but it has no alarm (#13772)
  • Testing: Improve KCP remediation ack signal diagnostics and reset handling (#13736)
  • Testing: Make the clusterctl upgrade management cluster control plane count configurable (#13766)
  • Testing: Update version matrix for GitHub workflows for release 1.13 (#13578)
  • util: Refactor consistency store to allow defer without previous store registration (#13751)
  • util: Remove deprecated code (#13749)
  • util: Switch CRD migrator to use merge patch (#13792)

📖 Additionally, there have been 20 contributions to our documentation and book. (#13419, #13559, #13566, #13568, #13574, #13589, #13592, #13603, #13615, #13620, #13624, #13637, #13645, #13683, #13684, #13696, #13699, #13704, #13718, #13777)

Dependencies

Added

  • github.com/clipperhouse/displaywidth: v0.10.0
  • github.com/clipperhouse/stringish: v0.1.1
  • github.com/clipperhouse/uax29/v2: v2.6.0
  • k8s.io/streaming: v0.36.2

Changed

  • github.com/alecthomas/units: b94a6e3 → 0f3dac3
  • github.com/coredns/corefile-migration: v1.0.31 → v1.0.33
  • 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/godbus/dbus/v5: v5.0.4 → v5.1.0
  • github.com/golang-jwt/jwt/v5: v5.2.2 → v5.3.0
  • github.com/google/pprof: 294ebfa → 545e8a4
  • 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/mattn/go-runewidth: v0.0.16 → v0.0.19
  • github.com/moby/spdystream: v0.5.0 → v0.5.1
  • github.com/olekukonko/errors: v1.1.0 → v1.2.0
  • github.com/olekukonko/ll: v0.1.1 → v0.1.6
  • github.com/olekukonko/tablewriter: v1.0.9 → v1.1.4
  • github.com/onsi/ginkgo/v2: v2.28.1 → v2.31.0
  • github.com/onsi/gomega: v1.39.1 → v1.42.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
  • go.etcd.io/etcd/api/v3: v3.6.10 → v3.6.12
  • go.etcd.io/etcd/client/pkg/v3: v3.6.10 → v3.6.12
  • go.etcd.io/etcd/client/v3: v3.6.10 → v3.6.12
  • 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/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.60.0 → v0.65.0
  • go.uber.org/zap: v1.27.1 → v1.28.0
  • golang.org/x/crypto: v0.50.0 → v0.51.0
  • golang.org/x/exp: 8a7402a → 944ab1f
  • golang.org/x/mod: v0.34.0 → v0.36.0
  • golang.org/x/net: v0.53.0 → v0.55.0
  • golang.org/x/sync: v0.20.0 → v0.21.0
  • golang.org/x/sys: v0.43.0 → v0.45.0
  • golang.org/x/telemetry: 579e4da → 42602be
  • golang.org/x/term: v0.42.0 → v0.43.0
  • golang.org/x/text: v0.36.0 → v0.38.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.43.0 → v0.45.0
  • google.golang.org/protobuf: v1.36.11 → f2248ac
  • k8s.io/api: v0.35.3 → v0.36.2
  • k8s.io/apiextensions-apiserver: v0.35.3 → v0.36.2
  • k8s.io/apimachinery: v0.35.3 → v0.36.2
  • k8s.io/apiserver: v0.35.3 → v0.36.2
  • k8s.io/client-go: v0.35.3 → v0.36.2
  • k8s.io/cluster-bootstrap: v0.35.3 → v0.36.2
  • k8s.io/code-generator: v0.35.3 → v0.36.2
  • k8s.io/component-base: v0.35.3 → v0.36.2
  • k8s.io/klog/v2: v2.130.1 → v2.140.0
  • k8s.io/kms: v0.35.3 → v0.36.2
  • 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/controller-runtime: v0.23.3 → v0.24.1
  • sigs.k8s.io/structured-merge-diff/v6: v6.3.2 → v6.4.0

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/rivo/uniseg: v0.4.7

_Thanks to all our contributors!_ 😊