Merge pull request #6509 from tstromberg/faster-health

Remove pod list stability double check
pull/6520/head
Thomas Strömberg 2020-02-05 14:50:07 -08:00 committed by GitHub
commit 88c51d7971
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 15 deletions

View File

@ -71,31 +71,21 @@ func apiServerPID(cr command.Runner) (int, error) {
func SystemPods(client *kubernetes.Clientset, start time.Time, timeout time.Duration) error {
glog.Info("waiting for kube-system pods to appear ...")
pStart := time.Now()
podStart := time.Time{}
podList := func() (bool, error) {
if time.Since(start) > timeout {
return false, fmt.Errorf("cluster wait timed out during pod check")
}
// Wait for any system pod, as waiting for apiserver may block until etcd
pods, err := client.CoreV1().Pods("kube-system").List(meta.ListOptions{})
if len(pods.Items) < 2 {
podStart = time.Time{}
return false, nil
}
if err != nil {
podStart = time.Time{}
glog.Warningf("pod list returned error: %v", err)
return false, nil
}
if podStart.IsZero() {
podStart = time.Now()
glog.Infof("%d kube-system pods found", len(pods.Items))
if len(pods.Items) < 2 {
return false, nil
}
glog.Infof("%d kube-system pods found since %s", len(pods.Items), podStart)
if time.Since(podStart) > 2*kconst.APICallRetryInterval {
glog.Infof("stability requirement met, returning")
return true, nil
}
return false, nil
return true, nil
}
if err := wait.PollImmediate(kconst.APICallRetryInterval, kconst.DefaultControlPlaneTimeout, podList); err != nil {
return fmt.Errorf("apiserver never returned a pod list")