What were you trying to accomplish?
After successfully updating EKS cluster from 1.30 to 1.31, trying to update the CNI plugin using eksctl utils update-aws-node --approve .
What happened?
The command failed with below error:
Error: DaemonSet.apps "aws-node" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"aws-vpc-cni", "app.kubernetes.io/name":"aws-node"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
How to reproduce it?
Simply run the command eksctl utils update-aws-node --approve
Logs
2025-01-27 15:40:40 [ℹ] replaced "CustomResourceDefinition.apiextensions.k8s.io/eniconfigs.crd.k8s.amazonaws.com"
2025-01-27 15:40:41 [ℹ] replaced "CustomResourceDefinition.apiextensions.k8s.io/policyendpoints.networking.k8s.aws"
2025-01-27 15:40:41 [ℹ] skipped existing "kube-system:ServiceAccount/aws-node"
2025-01-27 15:40:41 [ℹ] replaced "kube-system:ConfigMap/amazon-vpc-cni"
2025-01-27 15:40:41 [ℹ] replaced "ClusterRole.rbac.authorization.k8s.io/aws-node"
2025-01-27 15:40:41 [ℹ] replaced "ClusterRoleBinding.rbac.authorization.k8s.io/aws-node"
Error: DaemonSet.apps "aws-node" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"aws-vpc-cni", "app.kubernetes.io/name":"aws-node"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
Anything else we need to know?
Nothing special, this has worked in previous updates all the time.
Self managed EKS cluster and plugins
Versions
eksctl info
eksctl version: 0.202.0
kubectl version: v1.31.4
OS: linux