mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
[Federation]Fix panic: index out of range
When the number of clusterStatusNew's Conditions is different from the number of clusterStatusOld's Conditions, clustercontroller will panic. We should check it before comparing.
This commit is contained in:
parent
f05ce1e8f1
commit
8886574a67
@ -192,13 +192,18 @@ func (cc *ClusterController) UpdateClusterStatus() error {
|
||||
|
||||
} else {
|
||||
hasTransition := false
|
||||
for i := 0; i < len(clusterStatusNew.Conditions); i++ {
|
||||
if !(strings.EqualFold(string(clusterStatusNew.Conditions[i].Type), string(clusterStatusOld.Conditions[i].Type)) &&
|
||||
strings.EqualFold(string(clusterStatusNew.Conditions[i].Status), string(clusterStatusOld.Conditions[i].Status))) {
|
||||
hasTransition = true
|
||||
break
|
||||
if len(clusterStatusNew.Conditions) != len(clusterStatusOld.Conditions) {
|
||||
hasTransition = true
|
||||
} else {
|
||||
for i := 0; i < len(clusterStatusNew.Conditions); i++ {
|
||||
if !(strings.EqualFold(string(clusterStatusNew.Conditions[i].Type), string(clusterStatusOld.Conditions[i].Type)) &&
|
||||
strings.EqualFold(string(clusterStatusNew.Conditions[i].Status), string(clusterStatusOld.Conditions[i].Status))) {
|
||||
hasTransition = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !hasTransition {
|
||||
for j := 0; j < len(clusterStatusNew.Conditions); j++ {
|
||||
clusterStatusNew.Conditions[j].LastTransitionTime = clusterStatusOld.Conditions[j].LastTransitionTime
|
||||
@ -207,7 +212,7 @@ func (cc *ClusterController) UpdateClusterStatus() error {
|
||||
}
|
||||
clusterClient, found := cc.clusterKubeClientMap[cluster.Name]
|
||||
if !found {
|
||||
glog.Warningf("Failed to client for cluster %s", cluster.Name)
|
||||
glog.Warningf("Failed to get client for cluster %s", cluster.Name)
|
||||
continue
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user