Skip to content
Snippets Groups Projects
Commit 148bc92a authored by kaiyou's avatar kaiyou
Browse files

Wait for apiserver to be ready before running scheduler and cm

parent 881477ff
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,7 @@ import (
"github.com/spf13/pflag"
"go.acides.org/hepto/utils"
core "k8s.io/api/core/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/dynamic/dynamicinformer"
......@@ -91,6 +92,26 @@ var kubeApiserver = &Unit{
}
return prepared.Run(ctx.Done())
},
Ready: func(u *Unit, c *Cluster) bool {
u.Logger.Info("checking if apiserver is ready")
kc := &rest.Config{
Host: fmt.Sprintf("https://[%s]:6443", c.networking.NodeAddress.IP.String()),
TLSClientConfig: rest.TLSClientConfig{
CAFile: c.pki.TLS.CertPath(),
CertFile: c.masterCerts.SchedulerAPI.CertPath(),
KeyFile: c.masterCerts.SchedulerAPI.KeyPath(),
},
}
client, err := kubernetes.NewForConfig(rest.AddUserAgent(kc, "scheduler"))
if err != nil {
return false
}
_, err = client.CoreV1().Nodes().List(context.Background(), meta.ListOptions{})
if err != nil {
return false
}
return true
},
}
var kubeControllerManager = &Unit{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment