Commit 7230bd10 authored by Andy Goldstein's avatar Andy Goldstein

Fix rkt GetPods() order

Use an array to store the pod IDs and use that to build the pod array with consistent ordering, instead of map ordering, which is random and causes test flakes.
parent 1c50f183
...@@ -998,6 +998,7 @@ func (r *Runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) { ...@@ -998,6 +998,7 @@ func (r *Runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) {
} }
pods := make(map[types.UID]*kubecontainer.Pod) pods := make(map[types.UID]*kubecontainer.Pod)
var podIDs []types.UID
for _, pod := range listResp.Pods { for _, pod := range listResp.Pods {
pod, err := r.convertRktPod(pod) pod, err := r.convertRktPod(pod)
if err != nil { if err != nil {
...@@ -1009,16 +1010,17 @@ func (r *Runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) { ...@@ -1009,16 +1010,17 @@ func (r *Runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) {
oldPod, found := pods[pod.ID] oldPod, found := pods[pod.ID]
if !found { if !found {
pods[pod.ID] = pod pods[pod.ID] = pod
podIDs = append(podIDs, pod.ID)
continue continue
} }
oldPod.Containers = append(oldPod.Containers, pod.Containers...) oldPod.Containers = append(oldPod.Containers, pod.Containers...)
} }
// Convert map to list. // Convert map to list, using the consistent order from the podIDs array.
var result []*kubecontainer.Pod var result []*kubecontainer.Pod
for _, p := range pods { for _, id := range podIDs {
result = append(result, p) result = append(result, pods[id])
} }
return result, nil return result, nil
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment