Releases: kubernetes-sigs/cluster-api
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! 😊
v0.2.7
Changes since v0.2.6
🐛 Bug Fixes
- Fix MachineDeployment Status.Selector not being populated (#1692)
- Clusterctl only deletes the cluster object (#1696)
- Update forked kubectl drain library (#1636)
📖 Documentation
- Add CAPO to cluster-api book (#1680)
- Fix the quickstart AWS iamInstanceProfile (#1676)
- Updates to vSphere quick start based on upcoming v0.5.2 changes (#1668)
The image for this release is: us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.2.7
.
Thanks to all our contributors! 😊
v0.2.6
🐛 Bug Fixes
- Fixes an issue during clusterctl pivot when resource references are missing namespaces (#1616)
- Fixes an issue when using an empty namespace with
clusterctl create
(#1590)
📖 Documentation
The image for this release is: us.gcr.io/k8s-artifacts-prod/cluster-api/cluster-api-controller:v0.2.6
.
Thanks to all our contributors! 😊