# KubeZero 1.24

## TODO

## What's new - Major themes
- Cilium is now the default CNI, calico got removed
- cluster-autoscaler is enabled by default on AWS

## Version upgrades
- cilium
- metallb
- nvidia-device-plugin
- aws-node-termination-handler
- aws-ebs-csi-driver
- aws-efs-csi-driver

### FeatureGates
- PodAndContainerStatsFromCRI
- DelegateFSGroupToCSIDriver

# Upgrade
`(No, really, you MUST read this before you upgrade)`

- Ensure your Kube context points to the correct cluster !

1. Review CFN config for controller and workers ( enable containerProxy, remove legacy version settings etc )

2. Upgrade CFN stacks for the control plane and all worker groups

3. Trigger fully-automated cluster upgrade:  
  `./admin/upgrade_cluster.sh <path to the argocd app kubezero yaml for THIS cluster>`

4. Reboot controller(s) one by one  
Wait each time for controller to join and all pods running.
Might take a while ...

5. Launch new set of workers eg. by doubling `desired` for each worker ASG  
  once new workers are ready, cordon and drain all old workers  
The cluster-autoscaler will remove the old workers automatically after about 10min !

6. If all looks good, commit the ArgoApp resouce for Kubezero, before re-enabling ArgoCD itself.  
  git add / commit / push `<cluster/env/kubezero/application.yaml>`
