# Sarah / Erik - GKE upgrades 2024-05-08
Prep:
- Install kubectl 1.28.9
Planned work:
1. Update one cluster
2. Check that generated resource requests will still work (there isn't any margin if something has changed)
3. Update all clusters - at least to some degree in parallell
Updating a cluster:
1. identify available GKE versions
2. control plane bump from 1.27 -> 1.28, then 1.28 -> 1.29
3. update the core node pool and let it do a rolling upgrade
4. update user node pools
- for empty user nodes: update it straight away
- for non-empty user nodes:
- add a new node pool with `-b` suffix or remove an existing `-b` suffix
- taint the old nodes (see https://github.com/2i2c-org/infrastructure/pull/3447)
- kubectl taint node -l cloud.google.com/gke-nodepool=n2-highmem-4 rolling-phaseout:NoSchedule
- return later and hopefully be able to delete the old node pool, hopefully not having received new users