Releases: kubernetes-sigs/cluster-api
Releases · kubernetes-sigs/cluster-api
v0.3.7-beta.0
🚨 This is a BETA release. Use it only for testing purposes, if you find any bugs file an issue.
v0.3.7-alpha.0
🚨 This is an ALPHA release. Use it only for testing purposes, if you find any bugs file an issue.
v0.3.6
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
v0.3.5
v0.3.4
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 calledDeleteMachineAnnotation
which replaces the now-deprecatedDeleteNodeAnnotation
.
🐛 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
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 retrieskubeadm 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
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! 😊