in internal/deployers/eksapi/static_cluster.go [136:169]
func (s *StaticClusterManager) DeployBusyboxAndWaitForNodes() error {
klog.Infof("Deploying busybox pods")
t := templates.BusyboxDeployment
var buf bytes.Buffer
if err := t.Execute(&buf, templates.BusyboxDeploymentTemplateData{
Nodes: s.options.Nodes,
}); err != nil {
return err
}
deployment := &v1.Deployment{}
err := yaml.Unmarshal(buf.Bytes(), deployment)
if err != nil {
return fmt.Errorf("failed to unmarshal deployment: %v", err)
}
result, err := s.k8sClient.AppsV1().Deployments("default").Create(context.TODO(), deployment, metav1.CreateOptions{})
if err != nil {
return err
}
klog.Infof("Created deployment %q.\n", result.GetObjectMeta().GetName())
return waitForNodeCondition(s.k8sClient, func(nodes []corev1.Node) bool {
readyNodes := 0
for _, node := range nodes {
if isNodeReady(&node) {
readyNodes++
}
}
klog.Infof("Ready nodes: %d, Expected nodes: %d", readyNodes, s.options.Nodes)
return readyNodes >= s.options.Nodes
}, 15*time.Minute, "Waiting for nodes to be ready")
}