in internal/deployers/eksapi/deployer.go [165:231]
func (d *deployer) Up() error {
if err := d.verifyUpFlags(); err != nil {
return fmt.Errorf("up flags are invalid: %v", err)
}
if d.deployerOptions.StaticClusterName == "" {
if infra, err := d.infraManager.createInfrastructureStack(&d.deployerOptions); err != nil {
return err
} else {
d.infra = infra
}
}
cluster, err := d.clusterManager.getOrCreateCluster(d.infra, &d.deployerOptions)
if err != nil {
return err
}
d.cluster = cluster
kubeconfig, err := d.Kubeconfig()
if err != nil {
return err
}
d.k8sClient, err = newK8sClient(kubeconfig)
if err != nil {
return err
}
if d.deployerOptions.StaticClusterName != "" {
klog.Infof("inited k8sclient, skip the rest resource creation for static cluster")
d.staticClusterManager.SetK8sClient(kubeconfig)
if err := d.staticClusterManager.EnsureNodeForStaticCluster(); err != nil {
klog.Errorf("Failed to launch nodes: %v", err)
return err
}
klog.Infof("Nodes launched for static cluster")
return nil
}
if d.UnmanagedNodes {
if err := d.k8sClient.createAWSAuthConfigMap(d.NodeNameStrategy, d.infra.nodeRoleARN); err != nil {
return err
}
}
if d.AMI != "" && d.ExpectedAMI == "" {
d.ExpectedAMI = d.AMI
}
if err := d.addonManager.createAddons(d.infra, d.cluster, &d.deployerOptions); err != nil {
return err
}
if d.deployerOptions.TuneVPCCNI {
if err := d.k8sClient.tuneVPCCNI(); err != nil {
return err
}
}
if err := d.nodeManager.createNodes(d.infra, d.cluster, &d.deployerOptions, d.k8sClient); err != nil {
return err
}
if err := d.k8sClient.waitForReadyNodes(d.Nodes, d.NodeReadyTimeout); err != nil {
return err
}
if d.EmitMetrics {
if err := d.k8sClient.emitNodeMetrics(d.metrics, d.awsClients.EC2()); err != nil {
return err
}
}
if err := d.logManager.gatherLogsFromNodes(d.k8sClient, &d.deployerOptions, deployerPhaseUp); err != nil {
klog.Warningf("failed to gather logs from nodes: %v", err)
// don't return err, this isn't critical
}
return nil
}