Skip to content

Releases: kubernetes-sigs/cluster-api

v0.3.7-beta.0

01 Jul 22:40
cc45432
Compare
Choose a tag to compare
v0.3.7-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.

v0.3.7-alpha.0

19 Jun 18:45
11714ac
Compare
Choose a tag to compare
v0.3.7-alpha.0 Pre-release
Pre-release

🚨 This is an ALPHA release. Use it only for testing purposes, if you find any bugs file an issue.

v0.3.6

15 May 16:10
beff1e1
Compare
Choose a tag to compare

Changes since v0.3.5

⚠️ Breaking Changes

  • MachineHealthCheck spec.selector field cannot be empty (#3032) — Impact: If you have a MachineHealthCheck with an empty selector, users will need to update the selector to contain at least one label. For MachineHealthCheck in particular, an empty selector would match all the machines in a given cluster; given that we don't want to have overlapping health checks, it makes sense to disable it and make it opt-in.

✨ New Features

  • Update and unify cluster/resource paused handling (#2877) — Infrastructure provider should move to use these new utilities to watch Clusters to handle the global controller paused functionality.

🐛 Bug Fixes

  • Ignore custom static manifests on kubeadm join (#3053)
  • Kubeadm bootstrap provider should not fail if bootstrap data already exists (#2971)
  • Exclude conversion-data annotation when MD reconciles (#3018)
  • Convert MachineSet annotations from v1alpha2 (#3011)
  • KubeadmControlPlane should bypass the controller cache when initializing (#3002)
  • clusterctl: Support KUBECONFIG env var file paths (#3047)
  • clusterctl: Adds tolerations for cert-manager to run on control-plane nodes (#3034)

📖 Documentation

  • Add additional context around experiments in CONTRIBUTING guide (#2974)
  • Add section on how to develop e2e tests with clusterctl framework (#2839)
  • Clarify spec.providerId section (#3037)
  • Fixes for clusterctl developer doc, mostly related to docker provider (#3003)
  • Update book section regarding external etcd (#2962)

🏃 Others

  • Add remote cluster cache manager (#2880)
  • Use GOPROXY environment variable if set when building the docker images (#3061)
  • CAPD automatically re-create a machine if there is an error during provisioning (#3004)
  • [e2e] Add MachineHealthCheck tests (#3029)
  • [e2e] Add machine deployment scaling helper function (#3027)
  • [e2e] Add deprecated tag to e2e framework.config (#2979)
  • [e2e] Add MachineDeployment upgrade test (#2945)
  • [e2e] Add machine helper for status check. (#3028)
  • Update KIND to v0.7.0 in integration tests (#3008)
  • Remove use of metav1.FinalizerDeleteDependents from tests (#2987)
  • Add helper wrapping envtest (#2995)
  • clusterctl: print stack trace if verbosity is >= 5 (#3040)
  • clusterctl: add CLUSTERCTL_LOG_LEVEL environment variable (#2996)

Thanks to all our contributors! 😊

v0.2.11

14 May 16:00
2263f41
Compare
Choose a tag to compare

Changes since v0.2.10

⚠️ This is a maintenance release, if you're planning to upgrade from v0.2.x (v1alpha2) to v0.3.x (v1alpha3) make sure to upgrade to this version first.

🐛 Bug Fixes

  • [0.2] Exclude conversion-data annotation when MD reconciles (#3010)

Thanks to all our contributors! 😊

v0.3.5

30 Apr 15:53
59a696e
Compare
Choose a tag to compare

Changes since v0.3.4

✨ New Features

  • Support for Kubernetes v1.18 clusters (#2968)

🐛 Bug Fixes

  • Clusterctl should now correctly move user-provided certificates (#2988)
  • Clusterctl init should now correctly read the default config file (#2983)

Thanks to all our contributors! 😊

v0.3.4

28 Apr 23:25
7cda00b
Compare
Choose a tag to compare

Changes since v0.3.3

✨ New Features

  • Update MHC proposal with new annotation strategy (#2920) — An internal rework of MachineHealthCheck is has been approved and will be ready in a future version. This allows us to better split responsibilities between controllers, and add support for KCP (and other control plane providers) to remediate control plane.
  • Support specific kubeconfig context in clusterctl (#2856) — Allows to pass a specific kubeconfig context to be used when using a kubeconfig. CLI and library users can see the complete list of breaking changes here.
  • Make clusterctl cert-manager timeout configurable (#2834) — Users can now set a custom timeout used when clusterctl installs cert-manager.
  • Add DeleteMachineAnnotation for MachineSet Delete Policy (#2929) — Our api package now exposes a new annotation specific to MachineSet-owned Machine objects called DeleteMachineAnnotation which replaces the now-deprecated DeleteNodeAnnotation.

🐛 Bug Fixes

  • KCP should correctly select machines in failure domains during upgrades (#2833)
  • KCP should check if it has machines being deleted before proceeding with scale up/down (#2958)
  • KCP should now correctly allow custom imageRepository fields to be used for CoreDNS (#2832)
  • KCP should connect to the etcd leader whenever possible for basic operations (#2821)
  • KCP should recover when a Machine is manually deleted (#2841)
  • KCP should re-queue until the control plane is ready (#2907)
  • CABPK should not panic when using external etcd with undefined secrets (#2946)
  • Remove invalid ClusterRoleBinding from CertManager (#2931)
  • Allow webhooks to be called when using --dry-run by reporting no side-effect behaviors (#2868)
  • MachineSet controller should not use Update as a fallback (#2913)
  • Clusterctl shouldn't show invalid URLs when running config provider (#2948)
  • Clusterctl should show config provider without setting env vars (#2905)
  • Clusterctl should return an error if it the given config file doesn't exist (#2899)
  • Clusterctl should not return an error if it cannot find default config (#2951)
  • Clusterctl should now work correctly with variables containing a $ sign (#2858)
  • Clusterctl now validates the minimum Kubernetes version required for a management cluster (#2842)
  • Clusterctl now correctly allows users to override user specified values for control plane and worker machine count (#2597)
  • Clusterctl should now cache GitHub calls (#2848)

📖 Documentation

  • Update roadmap with focus on v1alpha3 (#2882)
  • Document the minimum required management cluster Kubernetes version (#2901)
  • Update MachineDeployment controller image in docs (#2878)
  • Document Docker and KIND prerequisites (#2925)
  • Clarify that MachineHealthCheck only works with MachineSet and MachineDeployment Machines (#2875)
  • Add initial Spot instances proposal (#2817)
  • Add Azure tab for deploy Calico CNI step in Quick Start (#2883)
  • Add subscription id to azure Quick Start (#2853)

🏃 Others

  • Add a library to parse container image name and other fields (#2869)
  • Grant RBAC access to experimental infra api group (#2959)
  • Remove issue-proposals in favor of CAEP process (#2940)
  • Allow extra arguments to be passed when using Tilt (#2932)
  • ‍Remove cmd/clusterctl/test folder, now superseded with new e2e-tests (#2933)
  • Remove annotations on upgradeControlPlane (#2887)
  • Add ci-apidiff job (#2923)
  • Introduce the new clusterctl-based suite of e2e tests (#2884)
    • Increase e2e test timeout (#2942, #2936)
    • Re-organize helpers func (#2922)
    • Add ClusterProvider and ClusterProxy (#2911)
    • Improve and cleanup e2e clusterctl (#2909)
    • Ensure that capd tests always clean up the kind cluster (#2917)
    • Improve management cluster interface (#2893)
    • Add namespace utils to the test framework (#2891)
    • Dump all resources when test ends (#2894)
    • Add log streaming to clusterctl e2e (#2879)
    • Add KCP integration and unit tests (#2802)
  • Improve unit test coverage for KCP (#2862)
  • Add workload cluster unit tests in KCP (#2806)

Thanks to all our contributors! 😊

v0.3.3

27 Mar 22:50
ecff70a
Compare
Choose a tag to compare

Changes since v0.3.2

✨ New Features

  • Support modifying spec.kubeadmConfigSpec.clusterConfiguration.imageRepository (#2794, #2807)
  • Add UseExperimentalRetryJoin to kubeadm bootstrap provider's KubeadmConfig (#2763, #2783) — This allows users to use an experimental script that retries kubeadm join phases when joining control plane or worker nodes.

🐛 Bug Fixes

  • util.{Machine,Cluster}ToInfrastructureMapFunc should exclude version when parsing object references (#2786) — Impact: very minor for infrastructure providers using these functions, no code changes necessary.
  • Use underscores as delimiters for contract labels (#2780) — Impact: Providers should follow new instructions available
  • KubeadmControlPlane: Fix machine selection logic during scale down (#2768)
  • KubeadmControlPlane: Fix a possible NPE when creating a workload cluster client (#2757)
  • Machine controller: Avoid draining nodes when deleting a Cluster (#2746)
  • MachineDeployment controller: actually return errors (#2740)

📖 Documentation

  • Updating Azure quickstart (#2797)
  • Add CAEP to glossary (#2781)
  • Update CAPO image-builder links (#2761)
  • Update OpenStack prerequisites in the ClusterAPI book (#2683)
  • Add IAM pre-requisite notes to AWS quickstart (#2741)

🏃 Others

  • Update controller-runtime to v0.5.2 and controller-tool to v0.2.8 (#2792)
  • Add more unit tests to the kubeadmControlPlane area (#2808)
  • Adds coredns upgrade validations to upgrade e2e tests (#2804)
  • Add missing tests in repository github (#2791)
  • Add etcd e2e tests (#2785)
  • Avoid deleting the e2e tests shared cluster after each test (#2655)
  • Move NewWithT(t) to inside the t.Run where applicable (#2799)
  • clusterctl: Add retries to clustectl move (#2776)
  • clusterctl: Add auth providers support to (#2684)
  • clusterctl: Add retries to create inventory (#2752)
  • Add e2e kube-proxy version check (#2773)
  • Enable all docker e2e tests for CI (#2758)

Thanks to all our contributors! 😊

v0.3.2

19 Mar 20:02
867b2af
Compare
Choose a tag to compare

Changes since v0.3.1

✨ New Features

  • clusterctl: local overrides (#2679) — Adds configurability to the overrides directory from within the clusterctl config yaml file, clusterctl still defaults to ~/.cluster-api/overrides if this property is not specified.
  • Validates CoreDNS version update (#2707, #2725, #2699) — Adds validation for CoreDNS upgrade compatibility in the KCP webhook.
  • LeaderElection configuration as flags (#2664) — Expose --leader-election-lease-duration, --leader-election-renew-deadline, and --leader-election-retry-period flags to customize the leader election parameters.

🐛 Bug Fixes

  • KubeadmControlPlane: Move etcd leadership to newest Machine when upgrading (#2695, #2525, #2726, #2700, #2698, #2696) — Ensures that we only move etcd once, instead of N times (N = number of replicas).
  • KubeadmControlPlane: Remove a troublesome annotation (#2711) — An annotation was previously used to keep track of the upgrade status but it caused reentrancy issues if the controller lost connectivity or crashed, we now query the source directly.
  • KubeadmControlPlane: Set a timeout when trying to connect to remote workload clusters (#2708) — When contacting the remote workload cluster (e.g. during health checks, status updates, or other operations) we now have a timeout of 30s (hardcoded), while before the clients were waiting indefinitely.

Thanks to all our contributors! 😊

v0.3.1

16 Mar 22:57
21c07c9
Compare
Choose a tag to compare

Changes since v0.3.0

🐛 Bug Fixes

  • Normalize container image name for kube-proxy, and validate Kubernetes versions (#2691)
  • Ensure Machine infrastructure reference is deleted before deleting the Kubernetes Node (#2570)
  • Validate MachineHealthCheck's MaxUnhealthy strings are percentages (#2648)
  • Fix a possible panic in KubeadmControlPlane when ClusterConfiguration is nil (#2641)

📖 Documentation

  • Show Azure tab in Tilt docs (#2692)
  • Update minimum tilt version (#2649)
  • Update quick start guide for flow and update parameters for AWS, Azure and vSphere (#2628)
  • Update clusterctl overview to remove confusion on presence of GUI (#2663)

🏃 Others

  • Update KubeadmControlPlane proposal to reflect implementation changes (#2390)
  • Increase default concurrency for KubeadmControlPlane controller to 10 (#2625)
  • Bump controller-tools to v0.2.6 (#2631)
  • Use controller-runtime cache for watching remote nodes over informers (#2496)
  • Add semver version validation rules to Machine.Spec.Version and KubeadmControlPlane.Spec.Version validation (#2674, #2647)
  • Mark defaulted kubeadm v1beta1 internal types fields as optional (#2678)
  • Standardize tests around gomega (#2680, #2681, #2645, #2673, #2668, #2643, #2638, #2632, #2614, #2667)
  • Migrate KubeadmControlPlane main from flags to pflags (#2656)
  • clusterctl repository-local supports windows (#2661)
  • clusterctl: log which value clusterctl mover is setting when pausing (#2687)
  • clusterctl: use exponential backoff (#2666)

Thanks to all our contributors! 😊

v0.3.0

10 Mar 19:54
b6aad25
Compare
Choose a tag to compare

🚨 This is a MAJOR release. A number of breaking changes exist in this release.

Proposals implemented in this release

Kubeadm based control plane

Clusterctl v2

Machine Health Checking and Remediation

MachinePool (experimental)

Getting started

Upgrading from v1alpha2

To upgrade from a running management cluster based on v1alpha2, follow these instruction in the book.


Changes since v0.3.0-rc.3

✨ New Features

  • Upgrade CoreDNS image info during KCP reconcile (#2574)
  • Upgrade kube-proxy daemonset as part of KCP upgrades (#2559)
  • Upgrade etcd version as part of KCP upgrades (#2579)
  • clusterctl: improve support for air-gapped environments all image overrides (#2586)
  • clusterctl: allow cert-manager image overrides (#2558)
  • Add MachineHealthCheck remediation logic (#2494)

🐛 Bug Fixes

  • Fix NPE when validating KCP etcd settings (#2616)

📖 Documentation

  • Update provider documentation for failureDomains (#2623)
  • clusterctl: doc config for air-gapped environments (#2595)
  • clusterctl based quick-start (#2590)
  • Add documentation around KubeadmControlPlane (#2607)
  • Add message about possible problem when doing clusterctl move (#2588)
  • Add documentation for MachineHealthChecks (#2567)
  • Add instructions for providers to upgrade to CRD v1 (#2551)

🏃 Others

  • Allow upgradeAfter field to be modifiable (#2604)
  • Allow KCP spec.version to be mutable (#2582)
  • Add validation for not having both local and external etcd in control plane (#2598)
  • Be consistent with versioning in KubeadmControlPlane (#2624)
  • Remove private APIs from Kubeadm v1beta1 types (#2605)
  • Loosen webhook validation on control plane to allow etcd changes (#2553)
  • Pass a stripped down object to controller.Watch (#2576)
  • Clean up go modules across repository (#2552)
  • Add NoExecute taint check for KubeadmControlPlane nodes (#2550)
  • Modify Metal3 provider repository (#2540)
  • cmd-clusterctl-api/tests: standardize gomega imports - follow up (#2615)
  • tests: standardize gomega imports - Follow up (#2589)
  • tests: standardize gomega/ginkgo imports (#2571)

Thanks to all our contributors! 😊