mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Merge pull request #101895 from pacoxu/scheduler-proxy-port-wait
e2e: waiting for scheduler pod to expose metrics once
This commit is contained in:
commit
9739592e84
@ -59,6 +59,7 @@ type Grabber struct {
|
|||||||
grabFromScheduler bool
|
grabFromScheduler bool
|
||||||
grabFromClusterAutoscaler bool
|
grabFromClusterAutoscaler bool
|
||||||
kubeScheduler string
|
kubeScheduler string
|
||||||
|
waitForSchedulerReadyOnce sync.Once
|
||||||
kubeControllerManager string
|
kubeControllerManager string
|
||||||
waitForControllerManagerReadyOnce sync.Once
|
waitForControllerManagerReadyOnce sync.Once
|
||||||
}
|
}
|
||||||
@ -149,7 +150,19 @@ func (g *Grabber) GrabFromScheduler() (SchedulerMetrics, error) {
|
|||||||
if g.kubeScheduler == "" {
|
if g.kubeScheduler == "" {
|
||||||
return SchedulerMetrics{}, fmt.Errorf("kube-scheduler pod is not registered. Skipping Scheduler's metrics gathering")
|
return SchedulerMetrics{}, fmt.Errorf("kube-scheduler pod is not registered. Skipping Scheduler's metrics gathering")
|
||||||
}
|
}
|
||||||
output, err := g.getMetricsFromPod(g.client, metricsProxyPod, metav1.NamespaceSystem, kubeSchedulerPort)
|
|
||||||
|
var err error
|
||||||
|
var output string
|
||||||
|
g.waitForSchedulerReadyOnce.Do(func() {
|
||||||
|
var lastMetricsFetchErr error
|
||||||
|
if metricsWaitErr := wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
|
||||||
|
output, lastMetricsFetchErr = g.getMetricsFromPod(g.client, metricsProxyPod, metav1.NamespaceSystem, kubeSchedulerPort)
|
||||||
|
return lastMetricsFetchErr == nil, nil
|
||||||
|
}); metricsWaitErr != nil {
|
||||||
|
err = fmt.Errorf("error waiting for scheduler pod to expose metrics: %v; %v", metricsWaitErr, lastMetricsFetchErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return SchedulerMetrics{}, err
|
return SchedulerMetrics{}, err
|
||||||
}
|
}
|
||||||
@ -184,6 +197,7 @@ func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
var output string
|
||||||
podName := g.kubeControllerManager
|
podName := g.kubeControllerManager
|
||||||
g.waitForControllerManagerReadyOnce.Do(func() {
|
g.waitForControllerManagerReadyOnce.Do(func() {
|
||||||
if readyErr := e2epod.WaitForPodsReady(g.client, metav1.NamespaceSystem, podName, 0); readyErr != nil {
|
if readyErr := e2epod.WaitForPodsReady(g.client, metav1.NamespaceSystem, podName, 0); readyErr != nil {
|
||||||
@ -193,7 +207,7 @@ func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
|
|||||||
|
|
||||||
var lastMetricsFetchErr error
|
var lastMetricsFetchErr error
|
||||||
if metricsWaitErr := wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
|
if metricsWaitErr := wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
|
||||||
_, lastMetricsFetchErr = g.getMetricsFromPod(g.client, metricsProxyPod, metav1.NamespaceSystem, kubeControllerManagerPort)
|
output, lastMetricsFetchErr = g.getMetricsFromPod(g.client, metricsProxyPod, metav1.NamespaceSystem, kubeControllerManagerPort)
|
||||||
return lastMetricsFetchErr == nil, nil
|
return lastMetricsFetchErr == nil, nil
|
||||||
}); metricsWaitErr != nil {
|
}); metricsWaitErr != nil {
|
||||||
err = fmt.Errorf("error waiting for controller manager pod to expose metrics: %v; %v", metricsWaitErr, lastMetricsFetchErr)
|
err = fmt.Errorf("error waiting for controller manager pod to expose metrics: %v; %v", metricsWaitErr, lastMetricsFetchErr)
|
||||||
@ -203,11 +217,6 @@ func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return ControllerManagerMetrics{}, err
|
return ControllerManagerMetrics{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
output, err := g.getMetricsFromPod(g.client, metricsProxyPod, metav1.NamespaceSystem, kubeControllerManagerPort)
|
|
||||||
if err != nil {
|
|
||||||
return ControllerManagerMetrics{}, err
|
|
||||||
}
|
|
||||||
return parseControllerManagerMetrics(output)
|
return parseControllerManagerMetrics(output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user