Skip to content

Commit a35f54e

Browse files
authored
Merge pull request kubernetes#88982 from aojea/flakyvolumes
e2e: wait for controller manager pod to be ready
2 parents f8ff8f4 + b1c1187 commit a35f54e

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

test/e2e/framework/metrics/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ go_library(
3131
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
3232
"//staging/src/k8s.io/component-base/metrics/testutil:go_default_library",
3333
"//test/e2e/framework/log:go_default_library",
34+
"//test/e2e/framework/pod:go_default_library",
3435
"//test/e2e/perftype:go_default_library",
3536
"//test/e2e/system:go_default_library",
3637
"//vendor/k8s.io/klog:go_default_library",

test/e2e/framework/metrics/metrics_grabber.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ package metrics
1919
import (
2020
"context"
2121
"fmt"
22+
"sync"
2223

2324
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2425
"k8s.io/apimachinery/pkg/fields"
2526
clientset "k8s.io/client-go/kubernetes"
2627
"k8s.io/kubernetes/pkg/master/ports"
28+
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
2729
"k8s.io/kubernetes/test/e2e/system"
2830

2931
"k8s.io/klog"
@@ -40,15 +42,16 @@ type Collection struct {
4042

4143
// Grabber provides functions which grab metrics from components
4244
type Grabber struct {
43-
client clientset.Interface
44-
externalClient clientset.Interface
45-
grabFromAPIServer bool
46-
grabFromControllerManager bool
47-
grabFromKubelets bool
48-
grabFromScheduler bool
49-
grabFromClusterAutoscaler bool
50-
masterName string
51-
registeredMaster bool
45+
client clientset.Interface
46+
externalClient clientset.Interface
47+
grabFromAPIServer bool
48+
grabFromControllerManager bool
49+
grabFromKubelets bool
50+
grabFromScheduler bool
51+
grabFromClusterAutoscaler bool
52+
masterName string
53+
registeredMaster bool
54+
waitForControllerManagerReadyOnce sync.Once
5255
}
5356

5457
// NewMetricsGrabber returns new metrics which are initialized.
@@ -160,7 +163,12 @@ func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
160163
if !g.registeredMaster {
161164
return ControllerManagerMetrics{}, fmt.Errorf("Master's Kubelet is not registered. Skipping ControllerManager's metrics gathering")
162165
}
163-
output, err := g.getMetricsFromPod(g.client, fmt.Sprintf("%v-%v", "kube-controller-manager", g.masterName), metav1.NamespaceSystem, ports.InsecureKubeControllerManagerPort)
166+
167+
podName := fmt.Sprintf("%v-%v", "kube-controller-manager", g.masterName)
168+
g.waitForControllerManagerReadyOnce.Do(func() {
169+
e2epod.WaitForPodNameRunningInNamespace(g.client, podName, metav1.NamespaceSystem)
170+
})
171+
output, err := g.getMetricsFromPod(g.client, podName, metav1.NamespaceSystem, ports.InsecureKubeControllerManagerPort)
164172
if err != nil {
165173
return ControllerManagerMetrics{}, err
166174
}

0 commit comments

Comments
 (0)