github kubernetes-sigs/cluster-api v1.5.0-rc.0

latest releases: v1.9.0-beta.0, v1.8.5, v1.7.8...
pre-release16 months ago

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

⚠️ Deprecation warning

The API version v1alpha3 is no longer served in this release. API version v1alpha4 is deprecated and will be removed in v1.6.

Changes since v1.5.0-beta.1


📈 Overview

  • 19 new commits merged
  • 7 feature additions ✨
  • 1 bugs fixed 🐛

✨ New Features

  • CAPIM: Enable Kubernetes upgrades in CAPIM (#8938)
  • ClusterClass: Add webhook warning for missing ClusterClass (#8746)
  • clusterctl: Add MachinePool Machine support in clusterctl discovery (#8836)
  • clusterctl: Introduce possibility to create clusterctl plugins (#8957)
  • Devtools: hack/observability bump kube-state-metrics chart to get version v2.9.2 (#8979)
  • Devtools: hack/observability: improve dashboards (#8964)
  • MachinePool: Add MachinePool Machine implementation in core CAPI components (#8828)

🐛 Bug Fixes

  • Devtools: tilt: fix build_engine setting when using podman (#8972)

🌱 Others

  • CAPIM: in-memory provider: add apiserver & etcd metrics (#8962)
  • Dependency: Bump golang.org/x/oauth2 from 0.9.0 to 0.10.0 (#8985)
  • Devtools: Protect well know registry from accidental push during tilt up (#8930)
  • Devtools: hack/observability: add apiserver request dashboards (#8978)
  • e2e: Add SHA to default KIND image used in e2e tests (#8975)
  • e2e: test/e2e: add field to scale test to deploy Clusters in separate namespace (#8963)
  • e2e: test/e2e: improve logging for a detected rollout (#8953)
  • KCP: KCP: Log the reason of a Machine rollout (#8959)
  • Dependency: Update golangci-lint to v1.53.3 (#8796)
  • Release: Improve release notes output (#8928)

📖 Additionally, there have been 1 contributions to our documentation and book. (#8958)

Reference to v1.5.0-beta.1 release notes

Changes since release v1.4.0

⚠️ RELEASE CANDIDATE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.24.x -> v1.27.x
  • Workload Cluster: v1.22.x -> v1.27.x

More information about version support can be found here

Changes since v1.4.0


📈 Overview

  • 323 new commits merged
  • 4 breaking changes ⚠️
  • 19 feature additions ✨
  • 62 bugs fixed 🐛

⚠️ Breaking Changes

  • CAPD: Use k8s v1.27.0 in quickstart docs and CAPD (#8518)
  • clusterctl: Bump to CR v0.15.0 (#8007)
  • clusterctl: Follow XDG Directory standard for config/data/... files (#6913)
  • clusterctl: Stop serving v1alpha3 API types (#8549)

✨ New Features

  • CAPBK: Use caching read for bootstrap config owner (#8867)
  • CAPIM: Enable Kubernetes upgrades in CAPIM (#8938)
  • ClusterClass: Add webhook warning for missing ClusterClass (#8746)
  • ClusterClass: add support or concurrent MD upgrades in classy clusters (#8432)
  • clusterctl: Add MachinePool Machine support in clusterctl discovery (#8836)
  • clusterctl: Add in memory provider (#8799)
  • clusterctl: Add support for add-on providers in clusterctl (#8472)
  • clusterctl: Introduce possibility to create clusterctl plugins (#8957)
  • clusterctl: feat: accept resource mutators in Move operation (#7966)
  • Devtools: hack/observability bump kube-state-metrics chart to get version v2.9.2 (#8979)
  • Devtools: hack/observability: Add Parca, Bump observability tools, Add Grafana scale dashboard (#8754)
  • Devtools: hack/observability: improve dashboards (#8964)
  • e2e: ci: collect debug information about leftover processes (#8734)
  • IPAM: Implements Getter interface for IPAddressClaim object (#8374)
  • KCP/Core/CAPD: Add flags for configuring rate limits (#8579)
  • Machine: Enable configuring the kubernetes rest client timeout for draining nodes (#8917)
  • MachinePool: Add MachinePool Machine implementation in core CAPI components (#8828)
  • MachineSet: MS preflight checks to improve cluster stability (#8595)
  • util: Move mergeMap to util (#8377)

🐛 Bug Fixes

  • API: Ensure ownerReference apiVersions are always up to date (#8256)
  • API: all: only set finalizers if deletionTimestamp is not set (#8949)
  • CAPBK: ignition: start kubeadm after network.target (#8772)
  • CAPBK: set uninitialized taint only on worker nodes (#8358)
  • CAPD: Add kind mapper (#8880)
  • CAPD: CAPD: Implement watch filter (#8789)
  • CAPD: CAPD: change the haproxy entrypoint to prevent getting stopped immediately after start (#8685)
  • CAPD: Delegate CAPD port selection to the container runtime (#8642)
  • CAPD: test/capd: fix kind mapper entry for v1.25.11 (#8914)
  • CAPD: test/e2e fix fail-swap-on=false flag not being part of kind images anymore (#8767)
  • CAPIM: fix cluster deletion in the in-memory API server (#8818)
  • CAPIM: fix inmemory provider docker build (#8822)
  • CAPIM: test/e2e/in-memory: set providerID after VM is provisioned (#8879)
  • CI: Always build Kind images for upgrade tests (#8859)
  • CI: Ensure ALWAYS_BUILD_KIND_IMAGES is defaulted correctly in ci script (#8873)
  • CI: verifier: use pull_request instead of pull_request_target (#8635)
  • ClusterCacheTracker: ClusterCacheTracker: Stop pod caching when checking workload cluster (#8850)
  • ClusterClass: Drop uid from error messages (#8333)
  • ClusterClass: Validate variables in defaulting webhook (#8332)
  • ClusterClass: avoid errors when MHC and upgrade occur together in classy clusters (#8464)
  • ClusterClass: topology controller should avoid unnecessary rollouts during upgrades (#8628)
  • ClusterClass: update TopologyReconciled condition on cluster deletion (#8422)
  • clusterctl: Add soft ownership from clusters to ClusterResourceSetBinding (#8318)
  • clusterctl: Ensure all GitHub releases are fetched when searching provider versions (#8240)
  • clusterctl: Return error on infra cluster and control plane discovery (#8604)
  • clusterctl: Use local kustomize version in create-local-repository.py (#8414)
  • clusterctl: clusterctl: return early if release for latest tag does not exist yet (#8253)
  • clusterctl: handle nil pointer in clusterctl describe (#8724)
  • ClusterResourceSet: : Make sure the Kubernetes API Server service already created on remote cluster before applying ClusterResourceSets (#8048)
  • ClusterResourceSet: ClusterResourceSet: continue applying when apply for a single cluster failed (#8611)
  • Dependency: Update kindnetd and kindest/haproxy (#8469)
  • Devtools: Update clean-charts make target for new paths (#8904)
  • Devtools: tilt: fix build_engine setting when using podman (#8972)
  • Devtools: tilt: set CR logger in tilt-prepare, fix allowed contexts (#8919)
  • e2e: Adjust machinepool helper e2e timeout (#8739)
  • e2e: Fix length check in MD helper (#8352)
  • e2e: Ignore cert annotation in rollout test (#8761)
  • e2e: Increase timeout for clusterclass rollout test (#8897)
  • e2e: Increased assertClusterObjects timeout (#8758)
  • e2e: Pin kindest/node images to known good versions in clusterctl upgrade tests (#8860)
  • e2e: Remove non-functioning ginkgo.no-color flag (#8703)
  • e2e: Revert "Add calico as e2e test CNI" (#8575)
  • e2e: test/e2e check for machines being ready after provisioning on Runtime SDK test (#8625)
  • e2e: test/e2e: use topology cluster-template for clusterctl upgrade mgmt cluster (#8311)
  • e2e: test/framework fix docker pod log collector (#8634)
  • IPAM: ipam: fix gateway being required for IPAddress (#8506)
  • KCP: Allow machine rollout if cert reconcile fails (#8711)
  • KCP: Ensure nil-pointer check in KCP syncMachines (#8481)
  • KCP: Prevent KCP to create many private keys for each reconcile (#8617)
  • KCP: enable updates from CloudInit (mostly ubuntu) based KCPs to Ignition (flatcar) based KCPs (#8339)
  • Machine: bug fix to set node interruptible label (#8297)
  • Machine: fix node label propagation (#8427)
  • MachinePool: Add node watcher to MachinePool controller (#8443)
  • MachinePool: Fix MachinePool node taint patching (#8462)
  • MachinePool: MachinePool: always patch owned conditions, fix GetTypedPhase, doc fixes (#8627)
  • MachinePool: Update MachinePool bootstrap dataSecretName when bootstrap config changes (#8667)
  • Testing: Catch failure when fetching component URLs (#8455)
  • Testing: Fix flake in machine phases test (#8370)
  • Testing: Fix flaky wait in CRS test (#8334)
  • Testing: Use CreateAndWait in MP ScaleFromZero test (#8927)
  • Testing: internal/machine-controller fix flakes in phases test (#8576)
  • Testing: machine-controller: fix phase tests race condition in tests on lastUpdated field (#8484)

🌱 Others

  • API: Deprecate v1alpha3 and v1alpha4 in CRDs (#8687)
  • CAPBK: replace reflect deepequal in bootstrap kubeadm (#8266)
  • CAPD: Automatically set kubelet args for capd (#8881)
  • CAPD: CAPD: only ignore necessary kubeadm preflight errors (#7911)
  • CAPIM: Add startup timeout to the in memory provider (#8831)
  • CAPIM: Add watch to in-memory server multiplexer (#8851)
  • CAPIM: CAPIM: Enable update for coreDNS and kube-proxy (#8899)
  • CAPIM: Fixups for watch in in-memory apiServer (#8898)
  • CAPIM: Improve etcd management in CAPIM (#8906)
  • CAPIM: add ClusterClass support for in-memory provider (#8807)
  • CAPIM: fix readme for in-memory provider (#8905)
  • CAPIM: in-memory provider: add apiserver & etcd metrics (#8962)
  • CAPIM: test/e2e/in-memory: enable unit tests (#8886)
  • CAPIM: test/e2e/in-memory: improve locking, return errors instead of panic (#8945)
  • CAPIM: test/e2e/in-memory: improve performance by fixing locking issues (#8895)
  • CAPIM: test/e2e/in-memory: sync in-memory provider ClusterClass with test (#8892)
  • CAPIM: test/infra/inmemory: rename controller files (#8830)
  • CI: Add area/dependency label for dependabot when bumping gomod (#8410)
  • CI: Add dependency label to github actions update (#8845)
  • CI: Switch cloudbuild.yaml to e2 machine type (#8428)
  • CI: verifier: change back to pull_request_target to make it work again (#8637)
  • ClusterCacheTracker: ClusterCacheTracker: improve error when workload cluster is not reachable (#8801)
  • ClusterCacheTracker: Deprecate DefaultIndex usage and remove where not needed (#8855)
  • ClusterCacheTracker: Use ClusterCacheTracker consistently (instead of NewClusterClient) (#8744)
  • ClusterCacheTracker: Use rest config from ClusterCacheTracker consistently (#8894)
  • ClusterCacheTracker/KCP/CAPBK: cache secrets in KCP, CABPK and ClusterCacheTracker (#8940)
  • ClusterClass: use cached Cluster get in Reconcile (#8936)
  • ClusterClass: use cached MD list in get current state (#8922)
  • ClusterClass: deprecate rolloutAfter in cluster topology (#8324)
  • ClusterClass: upgrading control plane should only be blocked if MD are upgrading (not just rolling out) (#8658)
  • clusterctl: Add move annotation on objects for cluster move operation (#8322)
  • clusterctl: Bump controller-tools to v0.12 (#8581)
  • clusterctl: CAPIM: use consistent spelling for release artifacts (#8853)
  • clusterctl: Drop cgroup-driver patch for CAPD (#8921)
  • clusterctl: Fix spelling mistake in clusterctl comment (#8344)
  • clusterctl: Update cert-manager to v1.12.2 (#8883)
  • clusterctl: clusterctl: Add labels to OWNERS file (#8342)
  • clusterctl: prepare main branch for v1.5 development (#8430)
  • Core: Cache unstructured in Cluster, MD and MS controller (#8916)
  • Core: Remove unnecessary requeues (#8743)
  • Dependency: Bump EndBug/add-and-commit from 9.1.1 to 9.1.2 (#8584)
  • Dependency: Bump EndBug/add-and-commit from 9.1.2 to 9.1.3 (#8621)
  • Dependency: Bump actions/checkout from 3.3.0 to 3.4.0 (#8321)
  • Dependency: Bump actions/checkout from 3.4.0 to 3.5.0 (#8389)
  • Dependency: Bump actions/checkout from 3.5.0 to 3.5.2 (#8540)
  • Dependency: Bump actions/checkout from 3.5.2 to 3.5.3 (#8837)
  • Dependency: Bump actions/setup-go from 3.5.0 to 4.0.1 (#8664)
  • Dependency: Bump docker/distribution to v2.8.2 (#8645)
  • Dependency: Bump gcb-docker-gcloud from v20230424-910a2a439d to v20230522-312425ae46 (#8770)
  • Dependency: Bump gcb-docker-gcloud image (#8570)
  • Dependency: Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 (#8461)
  • Dependency: Bump github.com/onsi/ginkgo/v2 from 2.10.0 to 2.11.0 (#8891)
  • Dependency: Bump github.com/onsi/ginkgo/v2 from 2.9.2 to 2.9.4 (#8622)
  • Dependency: Bump github.com/onsi/ginkgo/v2 from 2.9.4 to 2.9.5 (#8666)
  • Dependency: Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.9.7 (#8792)
  • Dependency: Bump github.com/onsi/ginkgo/v2 from 2.9.7 to 2.10.0 (#8839)
  • Dependency: Bump github.com/onsi/gomega from 1.27.4 to 1.27.5 (#8390)
  • Dependency: Bump github.com/onsi/gomega from 1.27.6 to 1.27.7 (#8715)
  • Dependency: Bump github.com/onsi/gomega from 1.27.7 to 1.27.8 (#8841)
  • Dependency: Bump github.com/prometheus/client_golang from 1.14.0 to 1.15.0 (#8541)
  • Dependency: Bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 (#8623)
  • Dependency: Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#8890)
  • Dependency: Bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#8502)
  • Dependency: Bump github.com/spf13/viper from 1.15.0 to 1.16.0 (#8791)
  • Dependency: Bump golang version (1.20.3 -> 1.20.4) (#8749)
  • Dependency: Bump golang.org/x/oauth2 from 0.6.0 to 0.7.0 (#8503)
  • Dependency: Bump golang.org/x/oauth2 from 0.7.0 to 0.8.0 (#8665)
  • Dependency: Bump golang.org/x/oauth2 from 0.8.0 to 0.9.0 (#8889)
  • Dependency: Bump golang.org/x/oauth2 from 0.9.0 to 0.10.0 (#8985)
  • Dependency: Bump golang.org/x/text from 0.8.0 to 0.9.0 (#8504)
  • Dependency: Bump golang.org/x/text from 0.9.0 to 0.10.0 (#8840)
  • Dependency: Bump golangci-lint to 1.52.1 and fix findings (#8331)
  • Dependency: Bump golangci-lint to v1.51.2 (#8312)
  • Dependency: Bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 (#8790)
  • Dependency: Bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 (#8838)
  • Dependency: Bump gomodules.xyz/jsonpatch/v2 from 2.2.0 to 2.3.0 (#8716)
  • Dependency: Bump kind to v0.19.0 (#8681)
  • Dependency: Bump kindnet and haproxy images to latest (#8676)
  • Dependency: Update KIND to v0.20.0 (#8908)
  • Dependency: Update cert manager to v1.11.1 (#8529)
  • Dependency: Update cert-manager to v1.11.2 (#8638)
  • Dependency: Update cert-manager to v1.12.0 (#8702)
  • Dependency: Update cert-manager to v1.12.1 (#8748)
  • Dependency: Update controller runtime to 0.14.6 (#8405)
  • Dependency: Update controller tools to v0.11.4 (#8547)
  • Dependency: Update conversion-gen version (v0.26.0 -> v0.27.1) (#8573)
  • Dependency: Update docker to v20.10.24 (#8475)
  • Dependency: Update kind to v0.18.0 (#8433)
  • Dependency: Update kpromo to v3.5.2 (#8487)
  • Dependency: Update kpromo to v3.6.0 (#8680)
  • Dependency: Update kubebuilder envtest (1.26.0 -> 1.27.1) (#8599)
  • Dependency: Upgrade golang version (1.19.6 -> 1.20.3) (#8527)
  • Dependency: Update golangci-lint to v1.53.3 (#8796)
  • Devtools: Add go.work to .gitignore and .dockerignore (#8155)
  • Devtools: Align kind registry script with upstream (#8731)
  • Devtools: Build golangci-lint locally (#8933)
  • Devtools: Pin delve to match go minor version (#8725)
  • Devtools: Protect well know registry from accidental push during tilt up (#8930)
  • Devtools: all: Add flags to enable block profiling (#8934)
  • Devtools: bump containerd to 1.6.18 in hack/tools (#8523)
  • Devtools: hack/observability: Add Grafana state dashboard, improve metrics (#8834)
  • Devtools: hack/observability: Bump Loki, Grafana and promtail charts (#7182)
  • Devtools: hack/observability: add apiserver request dashboards (#8978)
  • Devtools: hack/observability: add metrics-server chart (#8950)
  • Devtools: hack/observability: add tempo (for traces) (#8920)
  • Devtools: hack/observability: disable unused loki-gateway (#8794)
  • Devtools: hack/observability: improve Grafana dashboards (#8861)
  • Devtools: hack/observability: move charts so they are ignored by go mod (#8795)
  • Devtools: hack/observability: skip preload images on non-kind clusters (#8931)
  • Devtools: hack/observability: use 20 Gi of storage for Prometheus (#8961)
  • e2e: Add SHA to default KIND image used in e2e tests (#8975)
  • e2e: Add Scale e2e - development only (#8833)
  • e2e: Disable fail-fast by default for e2e tests (#8548)
  • e2e: E2E: autoscaler e2e test (#8514)
  • e2e: E2e: Unhold CI packages before installing (#7910)
  • e2e: Improve gomega fail handling in clusterClass rollout (#8769)
  • e2e: Improve logging for MachinePool upgrade test (#8728)
  • e2e: Move ClusterClass quickstart test from e2e-informing to e2e-main (#8765)
  • e2e: Pin cgroup driver used in v0.3 and v0.4 templates (#8684)
  • e2e: add E2E test for MachineSet Preflight checks (#8698)
  • e2e: add improvements to scale e2e (#8910)
  • e2e: assert E2E error responses when waiting for MD nodes (#8501)
  • e2e: e2e: log leftover processes to eventually detect zombies (#8662)
  • e2e: modify scale e2e test defaults (#8902)
  • e2e: test/e2e: Fixup dump kube-system pods (#8809)
  • e2e: test/e2e: add field to scale test to deploy Clusters in separate namespace (#8963)
  • e2e: test/e2e: also dump workload cluster kube-system pods (#8800)
  • e2e: test/e2e: cleanup test files (#8557)
  • e2e: test/e2e: improve logging for a detected rollout (#8953)
  • e2e: test/e2e: increase apply timeout to 1m (#8941)
  • e2e: test/framework: add functions to collect infrastructure logs in tests (#8675)
  • IPAM: Make IPAddressClaim.Status.AddressRef optional (#8493)
  • KCP: Change endpoints to endpoint in the etcd client (#8909)
  • KCP: KCP: Log the reason of a Machine rollout (#8959)
  • KCP: KCP: avoid panic if etcd server misbehaves (#8862)
  • KCP: KCP: cache secrets between LookupOrGenerate and ensureCertificatesOwnerRef (#8926)
  • KCP: KCP: cache unstructured (#8913)
  • KCP: KCP: drop redundant get machines (#8912)
  • KCP: KCP: fix noisy error log triggered by missing patch helper (#8863)
  • KCP: KCP: improve error log on scale up when Machine doesn't have a nodeRef (#8564)
  • KCP: Kcp use one workload cluster for reconcile (#8900)
  • KCP: Remove v1alpha2 adoption logic from KCP (#8328)
  • Machine: controller/machine: use unstructured caching client (#8896)
  • Machine: optimize reconcileInterruptibleNodeLabel of machine controller (#8852)
  • Machine: use providerID string as-is (#8577)
  • MachineDeployment: Drop the first return value from FindOldMachineSets (#8415)
  • MachineSet: add MachineFinalizer during machine computation (#8463)
  • MachineSet: surface failed preflight checks on MachineSet in MachinesCreated condition (#8669)
  • Release: Add area label lookup for prefixes to release notes tool (#8780)
  • Release: Add runtime extension components to release (#8438)
  • Release: Bump kpromo to v3.5.1 (#8301)
  • Release: Improve release notes formatting (#8826)
  • Release: Improve release notes output (#8928)
  • Release: Make release notes generation concurrent (#8817)
  • Runtime SDK: Update handler name validation rules (#8280)
  • Testing: Add calico as e2e test CNI (#8420)
  • Testing: Add dualstack e2e test (#8517)
  • Testing: Add unit test for health check during creation of a new cluster accessor (#8269)
  • Testing: Allow overriding gingko args in e2e tests (#8365)
  • Testing: Fix typos in phrase "to exist" (#8688)
  • Testing: Merge ownerReference tests with quick start (#8264)
  • Testing: Update e2e upgrade test versions (#8361)
  • Testing: Update version matrix for github workflows (#8398)
  • Testing: Validating the warnings in tests (#8778)
  • util: Rename internal/util/ssa util functions for better naming consistency (#8423)
  • util: util: cache list calls in cluster to objects mapper (#8918)

📖 Additionally, there have been 72 contributions to our documentation and book. (#8958, #8960, #8956, #8955, #8932, #8924, #8901, #8854, #8843, #8782, #8812, #8805, #8802, #8798, #8775, #8760, #8787, #8779, #8781, #8763, #8762, #8753, #8740, #8729, #8719, #8712, #8701, #8699, #8686, #8661, #8673, #8651, #8632, #8630, #8613, #8612, #8596, #8597, #8593, #8587, #8580, #8552, #8559, #8554, #8520, #8521, #8509, #8510, #8511, #8508, #8454, #8279, #8446, #8447, #8293, #8419, #8416, #8439, #8383, #8355, #8308, #8309, #8397, #8375, #8319, #8327, #8363, #8351, #8284, #8307, #8252, #8288)


Thanks to all our contributors! 😊

Don't miss a new cluster-api release

NewReleases is sending notifications on new releases.