1
0
mirror of https://github.com/rancher/norman.git synced 2025-09-23 20:18:51 +00:00
Files
norman/pkg/k8scheck/wait.go
2018-10-23 22:46:45 -07:00

34 lines
569 B
Go

package k8scheck
import (
"context"
"fmt"
"time"
"github.com/sirupsen/logrus"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
)
func Wait(ctx context.Context, config rest.Config) error {
client, err := kubernetes.NewForConfig(&config)
if err != nil {
return err
}
for {
_, err := client.Discovery().ServerVersion()
if err == nil {
break
}
logrus.Infof("Waiting for server to become available: %v", err)
select {
case <-ctx.Done():
return fmt.Errorf("startup canceled")
case <-time.After(2 * time.Second):
}
}
return nil
}