Skip to content

Releases: kubernetes-sigs/cluster-api

v1.8.1

14 Aug 06:55
0276925
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.27.x -> v1.31.x
  • Workload Cluster: v1.25.x -> v1.31.x

More information about version support can be found here

Highlights

  • Support for Kubernetes v1.31

Changes since v1.8.0

📈 Overview

  • 3 new commits merged
  • 1 feature addition ✨
  • 1 bug fixed 🐛

✨ New Features

  • Testing: Bump Kubernetes in tests to v1.31.0 and claim support for v1.31 (#11053)

🐛 Bug Fixes

  • Dependency: Update controller-runtime dependency to v0.18.5 (#11046)

🌱 Others

  • clusterctl: Improve clusterctl client config logic & error message (#11052)

Dependencies

Added

Nothing has changed.

Changed

  • sigs.k8s.io/controller-runtime: v0.18.4 → v0.18.5

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.8.0

12 Aug 18:04
69bbf35
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.27.x -> v1.30.x
  • Workload Cluster: v1.25.x -> v1.30.x

More information about version support can be found here

Highlights

  • Bumped to controller-runtime v0.18, k8s.io/* v0.30, controller-gen v0.15, Go 1.22
  • API: Add support for negative polarity conditions (#10550)
  • API: Allow control plane provider to set control plane endpoint (#10667)
  • CABPK: Add kubeadm v1beta4 types (including ExtraEnvs and ImagePullSerial) (#10709, #10846)
  • CABPK: Allow to generate JoinConfiguration discovery kubeconfig (#10799)
  • ClusterClass: Improvements for variables
    • CEL support for variables (#9239)
    • Metadata for top-level and nested variables (& deprecate previous metadata field) (#10778)
    • Support control plane variable overrides (#10682)
    • New builtin variables: control plane / MD / MP metadata (#10837), Cluster UID (#10822)
  • KCP: Delete out of date machines with unhealthy control plane component conditions during rollout (#10196)
  • KCP: Default ControlPlaneKubeletLocalMode kubeadm feature gate to true for Kubernetes >= 1.31.0
  • Logging: Improvements to rollout logs: Cluster topology controller (#10690), KCP controller & webhooks (#10628), MachineDeployment controller (#10688)
  • MachineDeployment: Add remediation strategy (#10712)
  • MachineSet/Machine: Improvements to Machine deletion
    • Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
    • Machine drain ignores terminating Pods earlier for unreachable Nodes (#10706)
    • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
    • MachineSet: Deprioritize unknown NodeHealthy conditions for deletion (#10763)
    • MachineSet: Ensure unhealthy machines get deletion priority (#10755)
  • A usual, significantly improved e2e test framework & coverage (#10083, #10216, #10135, #10498, #10639, #10530)
  • New providers in clusterctl: IONOS Cloud (#10767), Linode (#10471), Tinkerbell (#10487)

Deprecation Warning

  • ClusterClass: Deprecate definitionFrom field (#10841)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • MachineDeployment: Deprecate revision management (#10855)
  • MachineHealthCheck: Deprecate MaxUnhealthy & UnhealthyRange fields (#10853)

Umbrella issue: API changes: #10852

Changes since v1.7.0

📈 Overview

  • 322 new commits merged
  • 1 breaking change ⚠️
  • 23 feature additions ✨
  • 50 bugs fixed 🐛

⚠️ Breaking Changes

  • ClusterClass: Adjust CC & Cluster controller to block on variable conflicts, deprecate definitionFrom (#10841)

✨ New Features

  • API: Add support negative polarity conditions (#10550)
  • API: Optimize rbac across controllers (#10552)
  • Bootstrap: Allow CAPBK to generate JoinConfiguration discovery kubeconfig (#10799)
  • CABPK: Add ExtraEnvs and ImagePullSerial to KubeadmConfig (#10846)
  • CABPK: Add kubeadm v1beta4 types (#10709)
  • ClusterCacheTracker: Add QPS & burst options & flags for ClusterCacheTracker (#10880)
  • ClusterClass: Add map key for MD/MP class & topology in ClusterClass & Cluster.spec.topology (#10808)
  • ClusterClass: Add metadata for top-level and nested variables & deprecate previous metadata field (#10778)
  • ClusterClass: Add variable validation to ClusterClass controller, block Cluster reconcile if variables not reconciled (#10812)
  • ClusterClass: Extend ControlPlane/ MD / MP builtin to include metadata (#10837)
  • ClusterClass: Introduce CEL for ClusterClass Variables (#9239)
  • ClusterClass: Support ControlPlane variable overrides (#10682)
  • e2e: Bump Kubernetes to v1.31.0-rc.1 (#11022)
  • e2e: Bump Kubernetes version used for testing to v1.30.0-rc.1 (#10384)
  • e2e: Bump Kubernetes version used for testing to v1.31.0-beta.0 (#10922)
  • e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10968)
  • KCP: Default ControlPlaneKubeletLocalMode feature gate to true for >= 1.31.0 (#10947)
  • MachinePool: MachinePools: Use NodeDeletionTimeout and default it to 10s (#10553)
  • MachinePool: Set Kubernetes version in machinepool machine Status.Version (#10849)
  • MachineSet: Add remediation strategy support in MachineDeployment (#10712)
  • Runtime SDK/ClusterClass: Extend cluster builtin to include UID (#10822)
  • Runtime SDK/ClusterClass: Fix GetObjectVariableInto util func (#10702)
  • Testing: Support e2e for WSL (#10402)

🐛 Bug Fixes

  • API: Cluster should be provisoned when cpRef and endpoint is set (#10873)
  • API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10976)
  • API: Re-add patch for events (#10695)
  • API: When infrastructureRef is nil, set InfrastructureReadyCondition to true (#10909)
  • CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#11000)
  • CAPD: Don't add host ports to exposed ports of containers (#10657)
  • CAPD: Ensure DockerMachinePool providerIDList is deterministic (#11003)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10876)
  • CAPD: Verify lb config after writing it (#10453)
  • CI: Add for new linters to fix old syntax (#10699)
  • CI: Add tenv linter (#10689)
  • CI: Fix conversion-gen outside of GOPATH (#10502)
  • ClusterClass: Defaulting webhook should check class is set in ClusterClass-based clusters (#10671)
  • ClusterClass: Fix indexing in ClusterClass webhook MHC validation (#10672)
  • ClusterClass: Fix TestServerSideApplyWithDefaulting flakes (#10905)
  • clusterctl: Ensure cert-manager objects get applied before other provider objects (#10469)
  • clusterctl: Ensure move uses mutated metadata when updating a target object (#10982)
  • clusterctl: Fix log in clusterctl move (#10540)
  • clusterctl: Handle a nil mutator by returning an error, not panicking (#10981)
  • clusterctl: Verify that there is a release for the tag (#10220)
  • ClusterResourceSet: Correctly handle concurrent updates to ClusterResourceSetBinding (#10656)
  • ClusterResourceSet: Use separate cache for partial metadata watches on secrets to include all secrets (#10633)
  • Dependency: Use k8s.io/utils/ptr instead of k8s.io/utils/pointer (#10700)
  • e2e: Ensure all ownerRef assertions for some Kind are evaluated (#10590)
  • e2e: Filter cluster-wide objects asserted in ResourceVersion tests to exclude objects of parallel tests (#10560)
  • e2e: Fix kubetest to allow parallel execution on different clusters (#10424)
  • e2e: Kubetest: also gather junit reports in case of errors observed from ginkgo (#10493)
  • KCP: Delete out of date machines with unhealthy control plane component conditions when rolling out KCP (#10196)
  • KCP: Fix some KCP unit test flakes (#10711)
  • Machine: Machine Controller should try to retrieve node on delete (#11042)
  • Machine: Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
  • Machine: Speed up ignoring terminating Pods when draining unreachable Nodes (#10706)
  • MachineHealthCheck: Change MachineHealthCheck.spec.unhealthyConditions to optional (#9774)
  • MachineHealthCheck: Skip publishing the RemediationRestricted event when there are no unhealthy target (#10591)
  • MachinePool: Check that replicas pointer is not nil in machinepool controller (#10632)
  • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
  • MachineSet: MachineSet should allow scale down operations to proceed when templates don't exist (#10913)
  • ClusterClass/MachineHealthCheck: Fix default namespace of RemediationTemplate for ClusterClass and Topology (#10843)
  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10780)
  • KCP/CAPD: KCPTemplate & DockerClusterTemplate webhook: default before immutability check (#10638)
  • Runtime SDK: Topology: use raw input object for patch calculation in WalkTemplates (#10912)
  • Security: Also use tls options for metrics/diagnostics server (#10883)
  • Testing: Fix CRS test flake (#11011)
  • Testing: Fix metadata assert failure in clusterclass rollout test (#10840)
  • Testing: Fix race condition in TestPatchHelper test (#10886)
  • Testing: Test/framework isDockerCluster should check that infra ref is present (#10973)
  • util: Check errors for IsNotFound after patching spec and status (#10787)
  • util: Checking cert's keypair for nil before accessing to avoid panics (#10321)
  • util: Patch helper should be able to patch non-spec objects (#10824)
  • util: SSA: recover gvk after scheme.Convert (#10408)

🌱 Others

  • API: Allow control plane provider to set endpoint (#10667)
  • API: Allow users to specify webhook server cert and key names (#10551)
  • API: Partially revert changes for ":bug: Cluster should be provisoned when cpRef and endpoint is set" (#10903)
  • CAPD: Bump github.com/docker/docker to v26.0.2 (#10478)
  • CI: Add more templating func to prowjob-gen (#10391)
  • CI: Drop pr approver workflow top-level permissions (#10659)
  • CI: Optimize dependabot config (#10571)
  • CI: Publish nightly manifests to staging bucket (#10489)
  • CI: Replace exec kubectl with client CreateOrUpdate (#10442)
  • CI: Update base branch for link checker (#10964)
  • CI: Update version matrix for github workflows for release-1.7 (#10357)
  • CI: Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#10569)
  • ClusterCacheTracker: Improve CCT error logging (#10826)
  • ClusterCacheTracker: Use indexes field instead of passing it around (#10606)
  • ClusterClass: Add Cluster.GetClassKey() to retrieve a NamespacedName for classes (#10703)
  • ClusterClass: Add MachinePools to autoscaler e2e test (#10083)
  • ClusterClass: Add MachinePools to handler and topology test (#10216)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • ClusterClass: Improve reconcile state logs (don't log empty diff) (#11015)
  • ClusterClass: Log diffs for Cluster topology rollouts/patches (#10690)
  • ClusterClass: Separate...
Read more

v1.7.5

12 Aug 18:04
6dbd0ec
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.26.x -> v1.30.x
  • Workload Cluster: v1.24.x -> v1.30.x

More information about version support can be found here

Changes since v1.7.4

📈 Overview

  • 21 new commits merged
  • 1 feature addition ✨
  • 7 bugs fixed 🐛

✨ New Features

  • ClusterCacheTracker: Add QPS & burst options & flags for ClusterCacheTracker (#10894)

🐛 Bug Fixes

  • API: Cluster should be provisoned when cpRef and endpoint is set (#10881)
  • API: Drop caBundle from CRDs (#10978)
  • API: When infrastructureRef is nil, set InfrastructureReadyCondition to true (#10921)
  • CAPD: Ensure DockerMachinePool providerIDList is deterministic (#11002)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10877)
  • Machine: Machine Controller should try to retrieve node on delete (#11043)
  • MachineSet: MachineSet should allow scale down operations to proceed when templated don't exist (#10974)

🌱 Others

  • API: Partially revert changes for ":bug: Cluster should be provisoned when cpRef and endpoint is set" (#10904)
  • clusterctl: Bump cert-manager to v1.15.2 (#10993)
  • ClusterResourceSet: Ensure CRS controller always add ownerReference to resources (#10895)
  • ClusterResourceSet: Make ClusterResourceSet controller more predictable (#10896)
  • Dependency: Bump docker/docker to v25.0.6 (#11010)
  • e2e: Test/framework: scale up should use allocatable memory (#11008)
  • e2e: Test: stop using Consistently for rollout checks (#11001)
  • e2e: Test: use pause image for autoscaler tests (#10889)
  • e2e: Test: use pause instead of nginx (#10892)
  • Testing: Test/framework: Allow ScaleUp Deployment image to be customized (#10996)
  • util: Allow ClusterCacheTracker to set CacheByObject (#10954)

📖 Additionally, there have been 2 contributions to our documentation and book. (#10859, #10860)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.6.8

12 Aug 18:04
06a3bc0
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.25.x -> v1.29.x
  • Workload Cluster: v1.23.x -> v1.29.x

More information about version support can be found here

Changes since v1.6.7

📈 Overview

  • 6 new commits merged
  • 3 bugs fixed 🐛

🐛 Bug Fixes

  • API: Drop caBundle from CRDs (#10979)
  • CAPD: Docker: ignore kubeadm preflight check for FileContent--proc-sys-net-bridge-bridge-nf-call-ip6tables (#10938)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10878)

🌱 Others

  • clusterctl: Bump cert-manager to v1.15.2 (#10994)
  • e2e: Test: use pause image for autoscaler tests (#10890)
  • e2e: Test: use pause instead of nginx (#10893)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.8.0-rc.1

06 Aug 18:01
62155e7
Compare
Choose a tag to compare
v1.8.0-rc.1 Pre-release
Pre-release

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

Highlights

  • Bumped to controller-runtime v0.18, k8s.io/* v0.30, controller-gen v0.15, Go 1.22
  • API: Add support for negative polarity conditions (#10550)
  • API: Allow control plane provider to set control plane endpoint (#10667)
  • CABPK: Add kubeadm v1beta4 types (including ExtraEnvs and ImagePullSerial) (#10709, #10846)
  • CABPK: Allow to generate JoinConfiguration discovery kubeconfig (#10799)
  • ClusterClass: Improvements for variables
    • CEL support for variables (#9239)
    • Metadata for top-level and nested variables (& deprecate previous metadata field) (#10778)
    • Support control plane variable overrides (#10682)
    • New builtin variables: control plane / MD / MP metadata (#10837), Cluster UID (#10822)
  • KCP: Delete out of date machines with unhealthy control plane component conditions during rollout (#10196)
  • Logging: Improvements to rollout logs: Cluster topology controller (#10690), KCP controller & webhooks (#10628), MachineDeployment controller (#10688)
  • MachineDeployment: Add remediation strategy (#10712)
  • MachineSet/Machine: Improvements to Machine deletion
    • Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
    • Machine drain ignores terminating Pods earlier for unreachable Nodes (#10706)
    • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
    • MachineSet: Deprioritize unknown NodeHealthy conditions for deletion (#10763)
    • MachineSet: Ensure unhealthy machines get deletion priority (#10755)
  • A usual, significantly improved e2e test framework & coverage (#10083, #10216, #10135, #10498, #10639, #10530)
  • New providers in clusterctl: IONOS Cloud (#10767), Linode (#10471), Tinkerbell (#10487)

Deprecation Warning

  • ClusterClass: Deprecate definitionFrom field (#10841)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • MachineDeployment: Deprecate revision management (#10855)
  • MachineHealthCheck: Deprecate MaxUnhealthy & UnhealthyRange fields (#10853)

Umbrella issue: API changes: #10852

More details about the release

⚠️ RELEASE CANDIDATE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.27.x -> v1.30.x
  • Workload Cluster: v1.25.x -> v1.30.x

More information about version support can be found here

Changes since v1.7.0

📈 Overview

  • 318 new commits merged
  • 1 breaking change ⚠️
  • 22 feature additions ✨
  • 49 bugs fixed 🐛

⚠️ Breaking Changes

  • ClusterClass: Adjust CC & Cluster controller to block on variable conflicts, deprecate definitionFrom (#10841)

✨ New Features

  • API: Add support negative polarity conditions (#10550)
  • API: Optimize rbac across controllers (#10552)
  • Bootstrap: Allow CAPBK to generate JoinConfiguration discovery kubeconfig (#10799)
  • CABPK: Add ExtraEnvs and ImagePullSerial to KubeadmConfig (#10846)
  • CABPK: Add kubeadm v1beta4 types (#10709)
  • ClusterCacheTracker: Add QPS & burst options & flags for ClusterCacheTracker (#10880)
  • ClusterClass: Add map key for MD/MP class & topology in ClusterClass & Cluster.spec.topology (#10808)
  • ClusterClass: Add metadata for top-level and nested variables & deprecate previous metadata field (#10778)
  • ClusterClass: Add variable validation to ClusterClass controller, block Cluster reconcile if variables not reconciled (#10812)
  • ClusterClass: Extend ControlPlane/ MD / MP builtin to include metadata (#10837)
  • ClusterClass: Introduce CEL for ClusterClass Variables (#9239)
  • ClusterClass: Support ControlPlane variable overrides (#10682)
  • e2e: Bump Kubernetes version used for testing to v1.30.0-rc.1 (#10384)
  • e2e: Bump Kubernetes version used for testing to v1.31.0-beta.0 (#10922)
  • e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10968)
  • KCP: Default ControlPlaneKubeletLocalMode feature gate to true for >= 1.31.0 (#10947)
  • MachinePool: MachinePools: Use NodeDeletionTimeout and default it to 10s (#10553)
  • MachinePool: Set Kubernetes version in machinepool machine Status.Version (#10849)
  • MachineSet: Add remediation strategy support in MachineDeployment (#10712)
  • Runtime SDK/ClusterClass: Extend cluster builtin to include UID (#10822)
  • Runtime SDK/ClusterClass: Fix GetObjectVariableInto util func (#10702)
  • Testing: Support e2e for WSL (#10402)

🐛 Bug Fixes

  • API: Cluster should be provisoned when cpRef and endpoint is set (#10873)
  • API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10976)
  • API: Re-add patch for events (#10695)
  • API: When infrastructureRef is nil, set InfrastructureReadyCondition to true (#10909)
  • CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#11000)
  • CAPD: Don't add host ports to exposed ports of containers (#10657)
  • CAPD: Ensure DockerMachinePool providerIDList is deterministic (#11003)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10876)
  • CAPD: Verify lb config after writing it (#10453)
  • CI: Add for new linters to fix old syntax (#10699)
  • CI: Add tenv linter (#10689)
  • CI: Fix conversion-gen outside of GOPATH (#10502)
  • ClusterClass: Defaulting webhook should check class is set in ClusterClass-based clusters (#10671)
  • ClusterClass: Fix indexing in ClusterClass webhook MHC validation (#10672)
  • ClusterClass: Fix TestServerSideApplyWithDefaulting flakes (#10905)
  • clusterctl: Ensure cert-manager objects get applied before other provider objects (#10469)
  • clusterctl: Ensure move uses mutated metadata when updating a target object (#10982)
  • clusterctl: Fix log in clusterctl move (#10540)
  • clusterctl: Handle a nil mutator by returning an error, not panicking (#10981)
  • clusterctl: Verify that there is a release for the tag (#10220)
  • ClusterResourceSet: Correctly handle concurrent updates to ClusterResourceSetBinding (#10656)
  • ClusterResourceSet: Use separate cache for partial metadata watches on secrets to include all secrets (#10633)
  • Dependency: Use k8s.io/utils/ptr instead of k8s.io/utils/pointer (#10700)
  • e2e: Ensure all ownerRef assertions for some Kind are evaluated (#10590)
  • e2e: Filter cluster-wide objects asserted in ResourceVersion tests to exclude objects of parallel tests (#10560)
  • e2e: Fix kubetest to allow parallel execution on different clusters (#10424)
  • e2e: Kubetest: also gather junit reports in case of errors observed from ginkgo (#10493)
  • KCP: Delete out of date machines with unhealthy control plane component conditions when rolling out KCP (#10196)
  • KCP: Fix some KCP unit test flakes (#10711)
  • Machine: Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
  • Machine: Speed up ignoring terminating Pods when draining unreachable Nodes (#10706)
  • MachineHealthCheck: Change MachineHealthCheck.spec.unhealthyConditions to optional (#9774)
  • MachineHealthCheck: Skip publishing the RemediationRestricted event when there are no unhealthy target (#10591)
  • MachinePool: Check that replicas pointer is not nil in machinepool controller (#10632)
  • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
  • MachineSet: MachineSet should allow scale down operations to proceed when templates don't exist (#10913)
  • ClusterClass/MachineHealthCheck: Fix default namespace of RemediationTemplate for ClusterClass and Topology (#10843)
  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10780)
  • KCP/CAPD: KCPTemplate & DockerClusterTemplate webhook: default before immutability check (#10638)
  • Runtime SDK: Topology: use raw input object for patch calculation in WalkTemplates (#10912)
  • Security: Also use tls options for metrics/diagnostics server (#10883)
  • Testing: Fix CRS test flake (#11011)
  • Testing: Fix metadata assert failure in clusterclass rollout test (#10840)
  • Testing: Fix race condition in TestPatchHelper test (#10886)
  • Testing: Test/framework isDockerCluster should check that infra ref is present (#10973)
  • util: Check errors for IsNotFound after patching spec and status (#10787)
  • util: Checking cert's keypair for nil before accessing to avoid panics (#10321)
  • util: Patch helper should be able to patch non-spec objects (#10824)
  • util: SSA: recover gvk after scheme.Convert (#10408)

🌱 Others

  • API: Allow control plane provider to set endpoint (#10667)
  • API: Allow users to specify webhook server cert and key names (#10551)
  • API: Partially revert changes for ":bug: Cluster should be provisoned when cpRef and endpoint is set" (#10903)
  • CAPD: Bump github.com/docker/docker to v26.0.2 (#10478)
  • CI: Add more templating func to prowjob-gen (#10391)
  • CI: Drop pr approver workflow top-level permissions (#10659)
  • CI: Optimize dependabot config (#10571)
  • CI: Publish nightly manifests to staging bucket (#10489)
  • CI: Replace exec kubectl with client CreateOrUpdate (#10442)
  • CI: Update base branch for link checker (#10964)
  • CI: Update version matrix for github workflows for release-1.7 (#10357)
  • CI: Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#10569)
  • ClusterCacheTracker: Improve CCT error logging (#10826)
  • ClusterCacheTracker: Use indexes field instead of passing it around (#10606)
  • ClusterClass: Add Cluster.GetClassKey() to retrieve a NamespacedName for classes (#10703)
  • ClusterClass: Add MachinePools to autoscaler e2e test (#10083)
  • ClusterClass: Add MachinePools to handler and topology test (#10216)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • ClusterClass: Improve reconcile state logs (don't log empty diff) (#11015)
  • ClusterClass: Log diffs for Cluster topolog...
Read more

v1.8.0-rc.0

30 Jul 18:01
c05c45e
Compare
Choose a tag to compare
v1.8.0-rc.0 Pre-release
Pre-release

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

Highlights

  • Bumped to controller-runtime v0.18, k8s.io/* v0.30, controller-gen v0.15, Go 1.22
  • API: Add support for negative polarity conditions (#10550)
  • API: Allow control plane provider to set control plane endpoint (#10667)
  • CABPK: Add kubeadm v1beta4 types (including ExtraEnvs and ImagePullSerial) (#10709, #10846)
  • CABPK: Allow to generate JoinConfiguration discovery kubeconfig (#10799)
  • ClusterClass: Improvements for variables
    • CEL support for variables (#9239)
    • Metadata for top-level and nested variables (& deprecate previous metadata field) (#10778)
    • Support control plane variable overrides (#10682)
    • New builtin variables: control plane / MD / MP metadata (#10837), Cluster UID (#10822)
  • KCP: Delete out of date machines with unhealthy control plane component conditions during rollout (#10196)
  • Logging: Improvements to rollout logs: Cluster topology controller (#10690), KCP controller & webhooks (#10628), MachineDeployment controller (#10688)
  • MachineDeployment: Add remediation strategy (#10712)
  • MachineSet/Machine: Improvements to Machine deletion
    • Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
    • Machine drain ignores terminating Pods earlier for unreachable Nodes (#10706)
    • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
    • MachineSet: Deprioritize unknown NodeHealthy conditions for deletion (#10763)
    • MachineSet: Ensure unhealthy machines get deletion priority (#10755)
  • A usual, significantly improved e2e test framework & coverage (#10083, #10216, #10135, #10498, #10639, #10530)
  • New providers in clusterctl: IONOS Cloud (#10767), Linode (#10471), Tinkerbell (#10487)

Deprecation Warning

  • ClusterClass: Deprecate definitionFrom field (#10841)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • MachineDeployment: Deprecate revision management (#10855)
  • MachineHealthCheck: Deprecate MaxUnhealthy & UnhealthyRange fields (#10853)

Umbrella issue: API changes: #10852

More details about the release

⚠️ RELEASE CANDIDATE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.27.x -> v1.30.x
  • Workload Cluster: v1.25.x -> v1.30.x

More information about version support can be found here

Changes since v1.7.0

📈 Overview

  • 297 new commits merged
  • 1 breaking change ⚠️
  • 21 feature additions ✨
  • 42 bugs fixed 🐛

⚠️ Breaking Changes

  • ClusterClass: Adjust CC & Cluster controller to block on variable conflicts, deprecate definitionFrom (#10841)

✨ New Features

  • API: Add support negative polarity conditions (#10550)
  • API: Optimize rbac across controllers (#10552)
  • Bootstrap: Allow CAPBK to generate JoinConfiguration discovery kubeconfig (#10799)
  • CABPK: Add ExtraEnvs and ImagePullSerial to KubeadmConfig (#10846)
  • CABPK: Add kubeadm v1beta4 types (#10709)
  • ClusterCacheTracker: Add QPS & burst options & flags for ClusterCacheTracker (#10880)
  • ClusterClass: Add map key for MD/MP class & topology in ClusterClass & Cluster.spec.topology (#10808)
  • ClusterClass: Add metadata for top-level and nested variables & deprecate previous metadata field (#10778)
  • ClusterClass: Add variable validation to ClusterClass controller, block Cluster reconcile if variables not reconciled (#10812)
  • ClusterClass: Extend ControlPlane/ MD / MP builtin to include metadata (#10837)
  • ClusterClass: Introduce CEL for ClusterClass Variables (#9239)
  • ClusterClass: Support ControlPlane variable overrides (#10682)
  • e2e: Bump Kubernetes version used for testing to v1.30.0-rc.1 (#10384)
  • e2e: Bump Kubernetes version used for testing to v1.31.0-beta.0 (#10922)
  • KCP: Default ControlPlaneKubeletLocalMode feature gate to true for >= 1.31.0 (#10947)
  • MachinePool: MachinePools: Use NodeDeletionTimeout and default it to 10s (#10553)
  • MachinePool: Set Kubernetes version in machinepool machine Status.Version (#10849)
  • MachineSet: Add remediation strategy support in MachineDeployment (#10712)
  • Runtime SDK/ClusterClass: Extend cluster builtin to include UID (#10822)
  • Runtime SDK/ClusterClass: Fix GetObjectVariableInto util func (#10702)
  • Testing: Support e2e for WSL (#10402)

🐛 Bug Fixes

  • API: Cluster should be provisoned when cpRef and endpoint is set (#10873)
  • API: Re-add patch for events (#10695)
  • API: When infrastructureRef is nil, set InfrastructureReadyCondition to true (#10909)
  • CAPD: Don't add host ports to exposed ports of containers (#10657)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10876)
  • CAPD: Verify lb config after writing it (#10453)
  • CI: Add for new linters to fix old syntax (#10699)
  • CI: Add tenv linter (#10689)
  • CI: Fix conversion-gen outside of GOPATH (#10502)
  • ClusterClass: Defaulting webhook should check class is set in ClusterClass-based clusters (#10671)
  • ClusterClass: Fix indexing in ClusterClass webhook MHC validation (#10672)
  • ClusterClass: Fix TestServerSideApplyWithDefaulting flakes (#10905)
  • clusterctl: Ensure cert-manager objects get applied before other provider objects (#10469)
  • clusterctl: Fix log in clusterctl move (#10540)
  • clusterctl: Verify that there is a release for the tag (#10220)
  • ClusterResourceSet: Correctly handle concurrent updates to ClusterResourceSetBinding (#10656)
  • ClusterResourceSet: Use separate cache for partial metadata watches on secrets to include all secrets (#10633)
  • Dependency: Use k8s.io/utils/ptr instead of k8s.io/utils/pointer (#10700)
  • e2e: Ensure all ownerRef assertions for some Kind are evaluated (#10590)
  • e2e: Filter cluster-wide objects asserted in ResourceVersion tests to exclude objects of parallel tests (#10560)
  • e2e: Fix kubetest to allow parallel execution on different clusters (#10424)
  • e2e: Kubetest: also gather junit reports in case of errors observed from ginkgo (#10493)
  • KCP: Delete out of date machines with unhealthy control plane component conditions when rolling out KCP (#10196)
  • KCP: Fix some KCP unit test flakes (#10711)
  • Machine: Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
  • Machine: Speed up ignoring terminating Pods when draining unreachable Nodes (#10706)
  • MachineHealthCheck: Change MachineHealthCheck.spec.unhealthyConditions to optional (#9774)
  • MachineHealthCheck: Skip publishing the RemediationRestricted event when there are no unhealthy target (#10591)
  • MachinePool: Check that replicas pointer is not nil in machinepool controller (#10632)
  • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
  • MachineSet: MachineSet should allow scale down operations to proceed when templates don't exist (#10913)
  • ClusterClass/MachineHealthCheck: Fix default namespace of RemediationTemplate for ClusterClass and Topology (#10843)
  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10780)
  • KCP/CAPD: KCPTemplate & DockerClusterTemplate webhook: default before immutability check (#10638)
  • Runtime SDK: Topology: use raw input object for patch calculation in WalkTemplates (#10912)
  • Security: Also use tls options for metrics/diagnostics server (#10883)
  • Testing: Fix metadata assert failure in clusterclass rollout test (#10840)
  • Testing: Fix race condition in TestPatchHelper test (#10886)
  • util: Check errors for IsNotFound after patching spec and status (#10787)
  • util: Checking cert's keypair for nil before accessing to avoid panics (#10321)
  • util: Patch helper should be able to patch non-spec objects (#10824)
  • util: SSA: recover gvk after scheme.Convert (#10408)

🌱 Others

  • API: Allow control plane provider to set endpoint (#10667)
  • API: Allow users to specify webhook server cert and key names (#10551)
  • API: Partially revert changes for ":bug: Cluster should be provisoned when cpRef and endpoint is set" (#10903)
  • CAPD: Bump github.com/docker/docker to v26.0.2 (#10478)
  • CI: Add more templating func to prowjob-gen (#10391)
  • CI: Drop pr approver workflow top-level permissions (#10659)
  • CI: Optimize dependabot config (#10571)
  • CI: Publish nightly manifests to staging bucket (#10489)
  • CI: Replace exec kubectl with client CreateOrUpdate (#10442)
  • CI: Update version matrix for github workflows for release-1.7 (#10357)
  • CI: Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#10569)
  • ClusterCacheTracker: Improve CCT error logging (#10826)
  • ClusterCacheTracker: Use indexes field instead of passing it around (#10606)
  • ClusterClass: Add Cluster.GetClassKey() to retrieve a NamespacedName for classes (#10703)
  • ClusterClass: Add MachinePools to autoscaler e2e test (#10083)
  • ClusterClass: Add MachinePools to handler and topology test (#10216)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • ClusterClass: Log diffs for Cluster topology rollouts/patches (#10690)
  • ClusterClass: Separate schema and CEL errors in CC variable validation (#10809)
  • ClusterClass: Webhooks: make MDT.replicas and autoscaler mut. exclusive (#10370)
  • clusterctl: Add ionoscloud provider (#10767)
  • clusterctl: Add support for the linode-linode infrastructure provider to clusterctl (#10471)
  • clusterctl: Add Tinkerbell to the providers list (#10487)
  • clusterctl: Always run crd migration if possible to reduce conversion webhook usage (#10513)
  • clusterctl: Bump cert-manager to 1.14.5 (#10514)
  • clusterctl: Bump cert-manager to v1.15.0 (#10727)
  • clusterctl: Bump cert-manager to v1.15.1 (#10807)
  • clusterctl: Improve cert-manager shouldUpgrade (#10407)
  • ClusterResou...
Read more

v1.8.0-beta.1

23 Jul 18:22
176d770
Compare
Choose a tag to compare
v1.8.0-beta.1 Pre-release
Pre-release

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

Highlights

  • Add kubeadm v1beta4 types
  • Add support negative polarity conditions
More details about the release

⚠️ BETA RELEASE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.27.x -> v1.30.x
  • Workload Cluster: v1.25.x -> v1.30.x

More information about version support can be found here

Changes since v1.7.0

📈 Overview

  • 285 new commits merged
  • 1 breaking change ⚠️
  • 19 feature additions ✨
  • 40 bugs fixed 🐛

⚠️ Breaking Changes

  • ClusterClass: Adjust CC & Cluster controller to block on variable conflicts, deprecate definitionFrom (#10841)

✨ New Features

  • API: Add support negative polarity conditions (#10550)
  • API: Optimize rbac across controllers (#10552)
  • Bootstrap: Allow CAPBK to generate JoinConfiguration discovery kubeconfig (#10799)
  • CABPK: Add ExtraEnvs and ImagePullSerial to KubeadmConfig (#10846)
  • CABPK: Add kubeadm v1beta4 types (#10709)
  • ClusterCacheTracker: Add QPS & burst options & flags for ClusterCacheTracker (#10880)
  • ClusterClass: Add map key for MD/MP class & topology in ClusterClass & Cluster.spec.topology (#10808)
  • ClusterClass: Add metadata for top-level and nested variables & deprecate previous metadata field (#10778)
  • ClusterClass: Add variable validation to ClusterClass controller, block Cluster reconcile if variables not reconciled (#10812)
  • ClusterClass: Extend ControlPlane/ MD / MP builtin to include metadata (#10837)
  • ClusterClass: Introduce CEL for ClusterClass Variables (#9239)
  • ClusterClass: Support ControlPlane variable overrides (#10682)
  • e2e: Bump Kubernetes version used for testing to v1.30.0-rc.1 (#10384)
  • e2e: Bump Kubernetes version used for testing to v1.31.0-beta.0 (#10922)
  • MachinePool: Set Kubernetes version in machinepool machine Status.Version (#10849)
  • MachineSet: Add remediation strategy support in MachineDeployment (#10712)
  • Runtime SDK/ClusterClass: Extend cluster builtin to include UID (#10822)
  • Runtime SDK/ClusterClass: Fix GetObjectVariableInto util func (#10702)
  • Testing: Support e2e for WSL (#10402)

🐛 Bug Fixes

  • API: Cluster should be provisoned when cpRef and endpoint is set (#10873)
  • API: Re-add patch for events (#10695)
  • API: When infrastructureRef is nil, set InfrastructureReadyCondition to true (#10909)
  • CAPD: Don't add host ports to exposed ports of containers (#10657)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10876)
  • CAPD: Verify lb config after writing it (#10453)
  • CI: Add for new linters to fix old syntax (#10699)
  • CI: Add tenv linter (#10689)
  • CI: Fix conversion-gen outside of GOPATH (#10502)
  • ClusterClass: Defaulting webhook should check class is set in ClusterClass-based clusters (#10671)
  • ClusterClass: Fix indexing in ClusterClass webhook MHC validation (#10672)
  • ClusterClass: Fix TestServerSideApplyWithDefaulting flakes (#10905)
  • clusterctl: Ensure cert-manager objects get applied before other provider objects (#10469)
  • clusterctl: Fix log in clusterctl move (#10540)
  • clusterctl: Verify that there is a release for the tag (#10220)
  • ClusterResourceSet: Correctly handle concurrent updates to ClusterResourceSetBinding (#10656)
  • ClusterResourceSet: Use separate cache for partial metadata watches on secrets to include all secrets (#10633)
  • Dependency: Use k8s.io/utils/ptr instead of k8s.io/utils/pointer (#10700)
  • e2e: Ensure all ownerRef assertions for some Kind are evaluated (#10590)
  • e2e: Filter cluster-wide objects asserted in ResourceVersion tests to exclude objects of parallel tests (#10560)
  • e2e: Fix kubetest to allow parallel execution on different clusters (#10424)
  • e2e: Kubetest: also gather junit reports in case of errors observed from ginkgo (#10493)
  • KCP: Delete out of date machines with unhealthy control plane component conditions when rolling out KCP (#10196)
  • KCP: Fix some KCP unit test flakes (#10711)
  • Machine: Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
  • Machine: Speed up ignoring terminating Pods when draining unreachable Nodes (#10706)
  • MachineHealthCheck: Change MachineHealthCheck.spec.unhealthyConditions to optional (#9774)
  • MachineHealthCheck: Skip publishing the RemediationRestricted event when there are no unhealthy target (#10591)
  • MachinePool: Check that replicas pointer is not nil in machinepool controller (#10632)
  • MachineSet: Fix deletion priority to avoid deleting too many machines (#10087)
  • ClusterClass/MachineHealthCheck: Fix default namespace of RemediationTemplate for ClusterClass and Topology (#10843)
  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10780)
  • KCP/CAPD: KCPTemplate & DockerClusterTemplate webhook: default before immutability check (#10638)
  • Runtime SDK: Topology: use raw input object for patch calculation in WalkTemplates (#10912)
  • Testing: Fix metadata assert failure in clusterclass rollout test (#10840)
  • Testing: Fix race condition in TestPatchHelper test (#10886)
  • util: Check errors for IsNotFound after patching spec and status (#10787)
  • util: Checking cert's keypair for nil before accessing to avoid panics (#10321)
  • util: Patch helper should be able to patch non-spec objects (#10824)
  • util: SSA: recover gvk after scheme.Convert (#10408)

🌱 Others

  • API: Allow control plane provider to set endpoint (#10667)
  • API: Allow users to specify webhook server cert and key names (#10551)
  • API: Partially revert changes for ":bug: Cluster should be provisoned when cpRef and endpoint is set" (#10903)
  • CAPD: Bump github.com/docker/docker to v26.0.2 (#10478)
  • CI: Add more templating func to prowjob-gen (#10391)
  • CI: Drop pr approver workflow top-level permissions (#10659)
  • CI: Optimize dependabot config (#10571)
  • CI: Publish nightly manifests to staging bucket (#10489)
  • CI: Replace exec kubectl with client CreateOrUpdate (#10442)
  • CI: Update version matrix for github workflows for release-1.7 (#10357)
  • CI: Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#10569)
  • ClusterCacheTracker: Improve CCT error logging (#10826)
  • ClusterCacheTracker: Use indexes field instead of passing it around (#10606)
  • ClusterClass: Add Cluster.GetClassKey() to retrieve a NamespacedName for classes (#10703)
  • ClusterClass: Add MachinePools to autoscaler e2e test (#10083)
  • ClusterClass: Add MachinePools to handler and topology test (#10216)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • ClusterClass: Log diffs for Cluster topology rollouts/patches (#10690)
  • ClusterClass: Separate schema and CEL errors in CC variable validation (#10809)
  • ClusterClass: Webhooks: make MDT.replicas and autoscaler mut. exclusive (#10370)
  • clusterctl: Add ionoscloud provider (#10767)
  • clusterctl: Add support for the linode-linode infrastructure provider to clusterctl (#10471)
  • clusterctl: Add Tinkerbell to the providers list (#10487)
  • clusterctl: Always run crd migration if possible to reduce conversion webhook usage (#10513)
  • clusterctl: Bump cert-manager to 1.14.5 (#10514)
  • clusterctl: Bump cert-manager to v1.15.0 (#10727)
  • clusterctl: Bump cert-manager to v1.15.1 (#10807)
  • clusterctl: Improve cert-manager shouldUpgrade (#10407)
  • ClusterResourceSet: Ensure CRS controller always add ownerReference to resources (#10756)
  • ClusterResourceSet: Make ClusterResourceSet controller more predictable (#10869)
  • Community meeting: Retire the Alternative communication pattern feature group (#10658)
  • Control-plane: Improve KCP remediation re-entrancy (#10559)
  • Core: Cleanup separate unstructuredCachingClient (#10692)
  • Dependency: Bump controller-gen to v0.15 (#10380)
  • Dependency: Bump controller-runtime to v0.18.0 (#10383)
  • Dependency: Bump conversion-gen to v0.30.0 (#10474)
  • Dependency: Bump docker/docker to 26.0.0+incompatible (#10335)
  • Dependency: Bump envtest to v1.30.0 (#10477)
  • Dependency: Bump github.com/distribution/reference from 0.5.0 to 0.6.0 (#10501)
  • Dependency: Bump github.com/docker/docker from 26.1.4+incompatible to 27.0.0+incompatible in /test (#10775)
  • Dependency: Bump github.com/docker/docker to v27.0.1 (#10794)
  • Dependency: Bump Go to v1.22.2 (#10452)
  • Dependency: Bump go version to 1.22.3 (#10586)
  • Dependency: Bump golang to v1.21.9 and golang.org/x/net to mitigate CVE-2023-45288 (#10375)
  • Dependency: Bump golangci-lint to v1.57.2 (#10398)
  • Dependency: Bump to Go 1.22.4 (#10739)
  • Dependency: Bump to Go 1.22.5 (#10828)
  • Dependency: Fix loopvar linter issue and usage of deprecated grpc function (#10731)
  • Dependency: Fixup patch order in CABPK (#10399)
  • Dependency: Stop bumping cel-go via dependabot (#10834)
  • Dependency: Update Kustomize deprecated syntax (#10294)
  • Devtools: Add triage-party for the Cluster API backlog (#10437)
  • Devtools: Bump Cluster API Visualizer to v1.3.0 (#10386)
  • Devtools: Bump Cluster API Visualizer to v1.3.1 (#10816)
  • Devtools: Improve triage query (#10644)
  • Devtools: Tilt: ensure in-tree providers always use start.sh to allow restarts (#10811)
  • e2e: Add function to create the ClusterProxy when using a secondary kind-based management cluster (#10804)
  • e2e: Add IPAM API to test framework convenience scheme (#10745)
  • e2e: Allow setting worker machine count to nil in ApplyClusterTemplateAndWait & ConfigCluster (#10388)
  • e2e: Bump autoscaler to v1.30.0 (#10510)
  • e2e: Bump kind to v0.23.0 (#10610)
  • e2e: Drop support for INIT env variables in clusterctl upgrade test (#10609)
  • e2e: Enable ability to test pre-releases of kubernetes (#10412)
  • e...
Read more

v1.8.0-beta.0

16 Jul 17:52
377bd19
Compare
Choose a tag to compare
v1.8.0-beta.0 Pre-release
Pre-release

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

Highlights

  • Add kubeadm v1beta4 types
  • Add support negative polarity conditions
More details about the release

⚠️ BETA RELEASE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.27.x -> v1.30.x
  • Workload Cluster: v1.25.x -> v1.30.x

More information about version support can be found here

Changes since v1.7.0

📈 Overview

  • 267 new commits merged
  • 1 breaking change ⚠️
  • 16 feature additions ✨
  • 36 bugs fixed 🐛

⚠️ Breaking Changes

  • ClusterClass: Adjust CC & Cluster controller to block on variable conflicts, deprecate definitionFrom (#10841)

✨ New Features

  • API: Add support negative polarity conditions (#10550)
  • API: Optimize rbac across controllers (#10552)
  • Bootstrap: Allow CAPBK to generate JoinConfiguration discovery kubeconfig (#10799)
  • CABPK: Add ExtraEnvs and ImagePullSerial to KubeadmConfig (#10846)
  • CABPK: Add kubeadm v1beta4 types (#10709)
  • ClusterClass: Add map key for MD/MP class & topology in ClusterClass & Cluster.spec.topology (#10808)
  • ClusterClass: Add metadata for top-level and nested variables & deprecate previous metadata field (#10778)
  • ClusterClass: Add variable validation to ClusterClass controller, block Cluster reconcile if variables not reconciled (#10812)
  • ClusterClass: Extend ControlPlane/ MD / MP builtin to include metadata (#10837)
  • ClusterClass: Introduce CEL for ClusterClass Variables (#9239)
  • ClusterClass: Support ControlPlane variable overrides (#10682)
  • e2e: Bump Kubernetes version used for testing to v1.30.0-rc.1 (#10384)
  • MachineSet: Add remediation strategy support in MachineDeployment (#10712)
  • Runtime SDK/ClusterClass: Extend cluster builtin to include UID (#10822)
  • Runtime SDK/ClusterClass: Fix GetObjectVariableInto util func (#10702)
  • Testing: Support e2e for WSL (#10402)

🐛 Bug Fixes

  • API: Cluster should be provisoned when cpRef and endpoint is set (#10873)
  • API: Re-add patch for events (#10695)
  • CAPD: Don't add host ports to exposed ports of containers (#10657)
  • CAPD: Fix nil pointer in dockermachinepool controller (#10876)
  • CAPD: Verify lb config after writing it (#10453)
  • CI: Add for new linters to fix old syntax (#10699)
  • CI: Add tenv linter (#10689)
  • CI: Fix conversion-gen outside of GOPATH (#10502)
  • ClusterClass: Defaulting webhook should check class is set in ClusterClass-based clusters (#10671)
  • ClusterClass: Fix indexing in ClusterClass webhook MHC validation (#10672)
  • clusterctl: Ensure cert-manager objects get applied before other provider objects (#10469)
  • clusterctl: Fix log in clusterctl move (#10540)
  • clusterctl: Verify that there is a release for the tag (#10220)
  • ClusterResourceSet: Correctly handle concurrent updates to ClusterResourceSetBinding (#10656)
  • ClusterResourceSet: Use separate cache for partial metadata watches on secrets to include all secrets (#10633)
  • Dependency: Use k8s.io/utils/ptr instead of k8s.io/utils/pointer (#10700)
  • e2e: Fix kubetest to allow parallel execution on different clusters (#10424)
  • e2e: Kubetest also gather junit reports in case of errors observed from ginkgo (#10493)
  • e2e: Ensure all ownerRef assertions for some Kind are evaluated (#10590)
  • e2e: Filter cluster-wide objects asserted in ResourceVersion tests to exclude objects of parallel tests (#10560)
  • KCP: Delete out of date machines with unhealthy control plane component conditions when rolling out KCP (#10196)
  • KCP: Fix some KCP unit test flakes (#10711)
  • Machine: Machine deletion skips waiting for volumes detached for unreachable Nodes (#10662)
  • Machine: Speed up ignoring terminating Pods when draining unreachable Nodes (#10706)
  • MachineHealthCheck: Change MachineHealthCheck.spec.unhealthyConditions to optional (#9774)
  • MachineHealthCheck: Skip publishing the RemediationRestricted event when there are no unhealthy target (#10591)
  • MachinePool: Check that replicas pointer is not nil in machinepool controller (#10632)
  • MachineSet: Deletion priority to avoid deleting too many machines (#10087)
  • ClusterClass/MachineHealthCheck: Fix default namespace of RemediationTemplate for ClusterClass and Topology (#10843)
  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10780)
  • KCP/CAPD: KCPTemplate & DockerClusterTemplate webhook: default before immutability check (#10638)
  • Testing: Fix metadata assert failure in clusterclass rollout test (#10840)
  • util: Check errors for IsNotFound after patching spec and status (#10787)
  • util: Checking cert's keypair for nil before accessing to avoid panics (#10321)
  • util: Patch helper should be able to patch non-spec objects (#10824)
  • util: Recover gvk after scheme.Convert (#10408)

🌱 Others

  • API: Allow control plane provider to set endpoint (#10667)
  • API: Allow users to specify webhook server cert and key names (#10551)
  • CAPD: Bump github.com/docker/docker to v26.0.2 (#10478)
  • CI: Add more templating func to prowjob-gen (#10391)
  • CI: Drop pr approver workflow top-level permissions (#10659)
  • CI: Optimize dependabot config (#10571)
  • CI: Publish nightly manifests to staging bucket (#10489)
  • CI: Replace exec kubectl with client CreateOrUpdate (#10442)
  • CI: Update version matrix for github workflows for release-1.7 (#10357)
  • CI: Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#10569)
  • ClusterCacheTracker: Improve CCT error logging (#10826)
  • ClusterCacheTracker: Use indexes field instead of passing it around (#10606)
  • ClusterClass: Add Cluster.GetClassKey() to retrieve a NamespacedName for classes (#10703)
  • ClusterClass: Add MachinePools to autoscaler e2e test (#10083)
  • ClusterClass: Add MachinePools to handler and topology test (#10216)
  • ClusterClass: Deprecate IP Family builtin variable (#10554)
  • ClusterClass: Make MDT.replicas and autoscaler mut. exclusive (#10370)
  • ClusterClass: Log diffs for Cluster topology rollouts/patches (#10690)
  • ClusterClass: Separate schema and CEL errors in CC variable validation (#10809)
  • clusterctl: Add ionoscloud provider (#10767)
  • clusterctl: Add Tinkerbell to the providers list (#10487)
  • clusterctl: Always run crd migration if possible to reduce conversion webhook usage (#10513)
  • clusterctl: Bump cert-manager to 1.14.5 (#10514)
  • clusterctl: Bump cert-manager to v1.15.0 (#10727)
  • clusterctl: Bump cert-manager to v1.15.1 (#10807)
  • clusterctl: Improve shouldUpgrade (#10407)
  • clusterctl: Add support for the linode-linode infrastructure provider to clusterctl (#10471)
  • ClusterResourceSet: Ensure CRS controller always add ownerReference to resources (#10756)
  • Community meeting: Retire the Alternative communication pattern feature group (#10658)
  • Control-plane: Improve KCP remediation re-entrancy (#10559)
  • Core: Cleanup separate unstructuredCachingClient (#10692)
  • Dependency: Bump controller-gen to v0.15 (#10380)
  • Dependency: Bump controller-runtime to v0.18.0 (#10383)
  • Dependency: Bump conversion-gen to v0.30.0 (#10474)
  • Dependency: Bump docker/docker to 26.0.0+incompatible (#10335)
  • Dependency: Bump envtest to v1.30.0 (#10477)
  • Dependency: Bump github.com/distribution/reference from 0.5.0 to 0.6.0 (#10501)
  • Dependency: Bump github.com/docker/docker from 26.1.4+incompatible to 27.0.0+incompatible in /test (#10775)
  • Dependency: Bump github.com/docker/docker to v27.0.1 (#10794)
  • Dependency: Bump Go to v1.22.2 (#10452)
  • Dependency: Bump go version to 1.22.3 (#10586)
  • Dependency: Bump golang to v1.21.9 and golang.org/x/net to mitigate CVE-2023-45288 (#10375)
  • Dependency: Bump golangci-lint to v1.57.2 (#10398)
  • Dependency: Bump to Go 1.22.4 (#10739)
  • Dependency: Bump to Go 1.22.5 (#10828)
  • Dependency: Fix loopvar linter issue and usage of deprecated grpc function (#10731)
  • Dependency: Fixup patch order in CABPK (#10399)
  • Dependency: Stop bumping cel-go via dependabot (#10834)
  • Dependency: Update Kustomize deprecated syntax (#10294)
  • Devtools: Add triage-party for the Cluster API backlog (#10437)
  • Devtools: Bump Cluster API Visualizer to v1.3.0 (#10386)
  • Devtools: Bump Cluster API Visualizer to v1.3.1 (#10816)
  • Devtools: Improve triage query (#10644)
  • Devtools: Ensure in-tree providers always use start.sh to allow restarts (#10811)
  • e2e: Add function to create the ClusterProxy when using a secondary kind-based management cluster (#10804)
  • e2e: Add IPAM API to test framework convenience scheme (#10745)
  • e2e: Allow setting worker machine count to nil in ApplyClusterTemplateAndWait & ConfigCluster (#10388)
  • e2e: Bump autoscaler to v1.30.0 (#10510)
  • e2e: Drop support for INIT env variables in clusterctl upgrade test (#10609)
  • e2e: Enable ability to test pre-releases of kubernetes (#10412)
  • e2e: Enhance E2E Tests to Filter Out Extra Provider-Specific Metadata (#10715)
  • e2e: Ensure resourceVersions are stable (#10530)
  • e2e: Export more func in test/e2e/common.go (#10420)
  • e2e: Fix finalizers assertions (#10735)
  • e2e: Improve E2E tests for finalizers and ownerRefs (#10730)
  • e2e: Improve E2E ValidateFinalizers and ValidateOwnerRef (#10693)
  • e2e: Improve metadata assertions in ClusterClass rollout test (#10851)
  • e2e: Kind bump to v0.23.0 (#10610)
  • e2e: Add restConfigModifier Option to clusterProxy (#10832)
  • e2e: Check for metadata.yaml when resolving releases to not try to use unreleased versions + avoid retry on 404 (also in clusterctl) (#10618)
  • e2e: Dump resources before deleting extensionconfig (#10874)
  • e2e: Improve output for ValidateResourceVersionStable by using BeComparable instead of Equal (...
Read more

v1.7.4

09 Jul 17:57
53f0c53
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.26.x -> v1.30.x
  • Workload Cluster: v1.24.x -> v1.30.x

More information about version support can be found here

Changes since v1.7.3

📈 Overview

  • 23 new commits merged
  • 6 feature additions ✨
  • 5 bugs fixed 🐛

✨ New Features

  • Bootstrap: Allow CAPBK to generate JoinConfiguration discovery kubeconfig (#10842)
  • ClusterClass: Extend ControlPlane/ MD / MP builtin to include metadata (#10850)
  • CABPK: Add kubeadm v1beta4 types (#10771)
  • Dependency: Bump to Go 1.22.4 (#10801)
  • MachineDeployment: Add remediation strategy support in MachineDeployment (#10759)
  • Runtime SDK/ClusterClass: Extend cluster builtin to include UID (#10831)

🐛 Bug Fixes

  • ClusterResourceSet: Correctly handle concurrent updates to ClusterResourceSetBinding (#10785)
  • Machine: Machine deletion skips waiting for volumes detached for unreachable Nodes (#10765)
  • Machine: Speed up ignoring terminating Pods when draining unreachable Nodes (#10766)
  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10781)
  • util: Patch helper should be able to patch non-spec objects (#10833)

🌱 Others

  • clusterctl: Add ionoscloud provider (#10769)
  • clusterctl: Bump cert-manager to v1.15.1 (#10814)
  • Control-plane: Allow control plane provider to set endpoint (#10800)
  • Dependency: Bump to Go 1.22.5 (#10829)
  • e2e: Improvements to ownerReferences and finalizers test (#10747)
  • Machine: Improve logs & conditions when machine is waiting for node (#10762)
  • MachineHealthCheck: MachineHealthCheck should take Machine's InfraReady condition (#10758)
  • MachineSet: Deprioritize unknown NodeHealthy conditions for deletion (#10770)
  • MachineSet: Ensure unhealthy machines get deletion priority (#10761)

📖 Additionally, there have been 3 contributions to our documentation and book. (#10760, #10779, #10796)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.6.7

09 Jul 17:57
64b8ec7
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.25.x -> v1.29.x
  • Workload Cluster: v1.23.x -> v1.29.x

More information about version support can be found here

Changes since v1.6.6

📈 Overview

  • 6 new commits merged
  • 1 feature addition ✨
  • 1 bug fixed 🐛

✨ New Features

  • Dependency: Bump to Go 1.22.4 (#10802)

🐛 Bug Fixes

  • ClusterClass/MachineSet/MachineDeployment: MD/MS topo reconciler: only add finalizer for owned MD/MS (#10782)

🌱 Others

  • clusterctl: Bump cert-manager to v1.15.1 (#10813)
  • Dependency: Bump to Go 1.22.5 (#10830)
  • Devtools: Pin controller-gen binary to go 1.21 (#10815)

📖 Additionally, there has been 1 contribution to our documentation and book. (#10797)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊