func()

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")
}