1
0
mirror of https://github.com/rancher/norman.git synced 2025-09-26 07:12:30 +00:00
Files
norman/pkg/k8scheck/wait.go

34 lines
569 B
Go
Raw Normal View History

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
}