Releases: kubernetes-sigs/cluster-api
v0.3.2
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
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
andKubeadmControlPlane.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
🚨 This is a MAJOR release. A number of breaking changes exist in this release.
Proposals implemented in this release
Kubeadm based control plane
- Proposal: https://github.com/kubernetes-sigs/cluster-api/blob/master/docs/proposals/20191017-kubeadm-based-control-plane.md
- In depth controller overview: https://cluster-api.sigs.k8s.io/developer/architecture/controllers/control-plane.html
- Upgrades: https://cluster-api.sigs.k8s.io/tasks/kubeadm-control-plane.html#upgrading-workload-clusters
Clusterctl v2
- Proposal: https://github.com/kubernetes-sigs/cluster-api/blob/master/docs/proposals/20191016-clusterctl-redesign.md
- Overview: https://cluster-api.sigs.k8s.io/clusterctl/overview.html
Machine Health Checking and Remediation
- Proposal: https://github.com/kubernetes-sigs/cluster-api/blob/master/docs/proposals/20191030-machine-health-checking.md
- In depth controller overview: https://cluster-api.sigs.k8s.io/developer/architecture/controllers/machine-health-check.html
- Configure a Machine Health Check: https://cluster-api.sigs.k8s.io/tasks/healthcheck.html
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! 😊
v0.3.0-rc.3
Changes since v0.3.0-rc.2
⚠️ Breaking Changes
- Add exp/ package with MachinePool (#2512)
- clusterctl: cleanup the directory structure under cmd/clusterctl and remove the pkg directory (#2508)
✨ New Features
- clusterctl: upgrade to a specific set of provider versions (#2504)
- Adds kubernetes networking to capd e2es (#2506)
- Add custom Type field to all bootstrap data secrets (#2443)
- Add Health Check logic to MachineHealthCheck Reconciler (#2250)
- KubeadmControlPlane - Try all nodes except one being removed when removing etcd member (#2435)
🐛 Bug Fixes
- clusterctl: add retries on create objects (#2524)
- clusterctl: improve connection error messages (#2526)
- clusterctl: version command does not show correct output (#2491)
- Requeue while cluster's control plane object is being deleted (#2519)
- Actually set
Status.LastUpdated
on Machine whenStatus.Phase
changes (#2465)
📖 Documentation
- Add a section about matchPolicy to "v1alpha2 to v1apha3" doc (#2538)
- Update controller images in book (#2529)
- Upgrade v1alpha2 to v1alpha3 documentation (#2520)
- Rename Metal3.io provider from Baremetal to Metal3 (#2462)
🏃 Others
- Fix all 404s in book and add a verify script to ensure there are no 404s (#2531)
- Set matchPolicy to Equivalent for validation and mutation webhooks (#2533)
- cloud init package has reduced responsibilities (#2517)
- Wire up kubeadm control plane Ready status (#2488)
- Use controller-runtime's client ObjectKey instead of types.NamespacedName (#2502)
- Disable Interfacer Linter (#2511)
- Update KCP hash to include KubeadmConfigSpec (#2392)
- Bump Go to 1.13.8 (#2492)
- Refactors config reconciliation to the workload cluster and tests it (#2482)
- KCP: set managementCluster in SetupWithManager (#2485)
- fetch_ext_bins now checks existing version before downloading (#2481)
- Refactor workload cluster out of cluster (#2477)
- Add unit tests for health check function (#2472)
- Use go-bindata/[email protected] (#2471)
- refactor the etcd client in the cluster object (#2470)
- Add validation webhook check to make Spec.ClusterName immutable (#2463)
Thanks to all our contributors! 😊
v0.3.0-rc.2
Changes since v0.3.0-rc.1
⚠️ Breaking Changes
- Remove unused functions from the util package (#2417) — impact: if you're using these functions please file an issue or find alternatives.
✨ New Features
- Implement KubeadmControlPlane upgrade functionality (#2334)
- Add extra printer columns to machinesets (#2426)
- Moved MachineDeployment Cluster Label Name to webhook (#2308)
- Remove ConfigMap's entry when doing a KubeadmControlPlane scale down (#2383)
- Remove etcd membership when doing a KubeadmControlPlane scale down (#2382)
- Centralize common validations for kubeadmcontrolplane webhooks, also add support for mutating the KubeadmConfigSpec minus InitConfiguration/JoinConfiguration (#2388)
🐛 Bug Fixes
- Add a cluster watcher in the machine controller to reconcile after a cluster is unpaused (#2432)
- Recognize MachinePool as a bootstrap config owner (#2406)
- KubeadmControlPlane: expect timeout from target cluster load-balancer (#2409)
- Report all KCP healthcheck errors (#2451)
- The function util.EnsureOwnerRef should ignore version when comparing objects (#2411)
- Fix handling pre-releases in mdbook (#2368)
📖 Documentation
- Update our community blurb (#2399)
🏃 Others
- Add Cecile to reviewer list (#2376)
- Use a better loadbalancer for capd (switch to haproxy) (#2436)
- Add the Azure infrastructure provider (CAPZ) in clusterctl pre-defined providers list (#2419)
- Disallow modification of KCP kubeadm config spec (#2394)
- KubeadmControlPlane scale down improvements (#2381)
- Push logger further down into KubeadmControlPlane reconciliation methods (#2380)
- Kubeadm control plane validating webhook: forbid scaling to zero (#2384)
- Cleanup FailureDomain support for KubeadmControlPlane (#2379)
Thanks to all our contributors! 😊
v0.3.0-rc.1
Changes since v0.3.0-rc.0
⚠️ Breaking Changes
- Remove use of apiutil.NewDynamicRESTMapper (#2329)
- Package remote.{NewClusterClient, RESTConfig} now accepts client.ObjectKey instead of *clusterv1.Cluster (#2358)
✨ New Features
- Adding feature-gates flag for experimental features (#2359)
- MachinePool API Controller Implementation (#1952)
🐛 Bug Fixes
- Machine controller should expect bootstrap data only in secret (#2373)
- KubeadmBootstrapConfig's passwd field in v1alpha2 is omitempty since its optional (#2361)
- Add ca injection for kubeadmconfigtemplate (#2360)
- Add scheme registration for CustomResourceDefinition and List (#2347)
- clusterctl: Allows usage providers with the same name but different type (#2355)
- clusterctl: reset commandline flags (#2354)
- clusterctl: allow to get templates from repository without cluster (#2353)
📖 Documentation
- Fix book CSS for 7th column on provider tab (#2375)
- update tilt docs "Azure kustomize_substitutions Tab" (#2333)
- fix FailureDomains doc (#2367)
- change some tab displays in the cluster-api book (#2351)
- Fixes broken link clusterctl configuration #2340 (#2342)
🏃 Others
- Adds machine filters and FilterableMachineCollection (#2374)
- clusterctl: Add baremetal provider in clusterctl pre-defined providers list (#2357)
Thanks to all our contributors! 😊
v0.2.10
Changes since v0.2.9
⚠️ Breaking Changes
- Add preserveUnknownFields=false marker (#2366) — impact: minor, folks need to update their CRDs and components. This change is required before any upgrade to CRD v1 or CAPI v1alpha3 can be performed.
✨ New Features
- Add clusterctl labels to CAPI components (#2112)
🐛 Bug Fixes
📖 Documentation
The image for this release is: us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.2.10
.
Thanks to all our contributors! 😊
v0.3.0-rc.0
🚨 This is a RC release. A number of breaking changes exist in this release.
Images and artifacts for pre-release versions might be deleted in a future date.
The image for this release is: us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.3.0-rc.0
.
v0.2.9
v0.2.8
Changes since v0.2.7
🐛 Bug Fixes
- Wait for all descendants when deleting a cluster (#1877)
- clusterctl/kind: return stdout and not combined output (#1792)
📖 Documentation
The image for this release is: us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.2.8
.
Thanks to all our contributors! 😊