Changes since v0.3.11
✨ New Features
- Use uncached client and partial metadata for secret and configmaps (#3986) — Impact: Reduced memory usage, the controller now hits the API Server directly when querying for Secrets and ConfigMap resources, instead of building a local cache of all objects in all watched namespaces.
- Add Cluster API GCP Provider to clusterctl providers list (#4008)
🐛 Bug Fixes
- MachineHealthCheck now sorts status targets to avoid continuous patches (#3998)
- KubeadmControlPlane scale down checks should exclude machines about to be deleted (#3984)
- KubeadmControlPlane should use its own NodeRefs when reconciling etcd members (#3971) — Impact: Solves a race condition between the controller trying to upgrade a cluster and the Kubernetes node not being fully registered yet in the list of nodes as a control-plane.
- Properly check errors.Cause when checking with apierrors (#3969) — Impact: Solves an issue where the Machine deletion would get stuck or timeout after a number of retries.
- Rotate MachinePool bootstrap token (#3965) — Impact: MachinePool bootstrap token were not previously rotated, and expired after 15m. With this change, new MachinePool instances should be able to join the cluster after the timeout.
📖 Documentation
- Updating Cluster API OpenStack variables in Quick Start (#3952)
🌱 Others
- Move @ncdc to emeritus (#4010) — A huge thanks to Andy for his immense work in the Cluster API community and leadership. 🤗
- Un-deprecate OwnedConditions and WithOwnedConditions (#3936)
Thanks to all our contributors! 😊