Closed rndstr closed 4 years ago
For: a) eksctl upgrade cluster to wait until all control planes are updated
https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateClusterVersion.html
Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to UPDATING (this status transition is eventually consistent). When the update is complete (either Failed or Successful), the cluster status moves to Active.
I don't see any mention that it means only part of the control plane has been updated.
This is still an issue after the patch. It seems to be happening 50% of the time where the version reported back is not consistent, it sometimes shows the old version and other times shows the new version.
Is there a way we can wait for the control plane to be fully upgraded?
From https://github.com/aws/aws-sdk-go/blob/v1.34.25/service/eks/api.go#L2185
It shows
Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to UPDATING (this status transition is eventually consistent). When the update is complete (either Failed or Successful), the cluster status moves to Active.
Can we add a wait for the Active status?
At the moment we already have a wait for the Update itself to move to Successful, I suppose we can add a wait for cluster status to Active as well. (EDIT: although it isn't clear why one but not the other would ensure a complete update)
From the SDK code comment above
Cluster updates are asynchronous
Perhaps the successful return of the command is just to confirm that the async request was successful? Not that the upgrade was completed?
What happened?
eksctl utils update-kube-proxy
queries the server version through the raw kubernetes client. Onceeksctl upgrade cluster
finishes, the version returned alternates between new and old version for a while.(see
desiredTag
output)Therefore, depending which version happens to be returned, the call to
eksctl utils update-kube-proxy
may say "no action required" while we actually do want to update.What you expected to happen? Either a)
eksctl upgrade cluster
to wait until all control planes are updated, or b)eksctl utils update-kube-proxy
to update the proxy to the newest control plane versionHow to reproduce it?
simple-14.yaml
simple-15.yaml with
version: "1.15"
Anything else we need to know? –
Versions Please paste in the output of these commands:
Logs
Update.Status
fromEKS::DescribeUpdate
once eksctl proceeds fromupgrade cluster
: