Merge pull request #88982 from aojea/flakyvolumes

e2e: wait for controller manager pod to be ready
This commit is contained in:
Kubernetes Prow Robot 2020-03-10 03:29:36 -07:00 committed by GitHub
commit a35f54e3e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 10 deletions

View File

@ -31,6 +31,7 @@ go_library(
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/component-base/metrics/testutil:go_default_library", "//staging/src/k8s.io/component-base/metrics/testutil:go_default_library",
"//test/e2e/framework/log:go_default_library", "//test/e2e/framework/log:go_default_library",
"//test/e2e/framework/pod:go_default_library",
"//test/e2e/perftype:go_default_library", "//test/e2e/perftype:go_default_library",
"//test/e2e/system:go_default_library", "//test/e2e/system:go_default_library",
"//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/klog:go_default_library",

View File

@ -19,11 +19,13 @@ package metrics
import ( import (
"context" "context"
"fmt" "fmt"
"sync"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
"k8s.io/kubernetes/test/e2e/system" "k8s.io/kubernetes/test/e2e/system"
"k8s.io/klog" "k8s.io/klog"
@ -40,15 +42,16 @@ type Collection struct {
// Grabber provides functions which grab metrics from components // Grabber provides functions which grab metrics from components
type Grabber struct { type Grabber struct {
client clientset.Interface client clientset.Interface
externalClient clientset.Interface externalClient clientset.Interface
grabFromAPIServer bool grabFromAPIServer bool
grabFromControllerManager bool grabFromControllerManager bool
grabFromKubelets bool grabFromKubelets bool
grabFromScheduler bool grabFromScheduler bool
grabFromClusterAutoscaler bool grabFromClusterAutoscaler bool
masterName string masterName string
registeredMaster bool registeredMaster bool
waitForControllerManagerReadyOnce sync.Once
} }
// NewMetricsGrabber returns new metrics which are initialized. // NewMetricsGrabber returns new metrics which are initialized.
@ -160,7 +163,12 @@ func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
if !g.registeredMaster { if !g.registeredMaster {
return ControllerManagerMetrics{}, fmt.Errorf("Master's Kubelet is not registered. Skipping ControllerManager's metrics gathering") return ControllerManagerMetrics{}, fmt.Errorf("Master's Kubelet is not registered. Skipping ControllerManager's metrics gathering")
} }
output, err := g.getMetricsFromPod(g.client, fmt.Sprintf("%v-%v", "kube-controller-manager", g.masterName), metav1.NamespaceSystem, ports.InsecureKubeControllerManagerPort)
podName := fmt.Sprintf("%v-%v", "kube-controller-manager", g.masterName)
g.waitForControllerManagerReadyOnce.Do(func() {
e2epod.WaitForPodNameRunningInNamespace(g.client, podName, metav1.NamespaceSystem)
})
output, err := g.getMetricsFromPod(g.client, podName, metav1.NamespaceSystem, ports.InsecureKubeControllerManagerPort)
if err != nil { if err != nil {
return ControllerManagerMetrics{}, err return ControllerManagerMetrics{}, err
} }