func()

in hack/deployer/runner/eks.go [101:150]


func (e *EKSDriver) Execute() error {
	defer e.runCleanup()
	if err := e.auth(); err != nil {
		return err
	}
	exists, err := e.clusterExists()
	if err != nil {
		return fmt.Errorf("while checking cluster exists %w", err)
	}
	switch e.plan.Operation {
	case DeleteAction:
		if exists {
			if err = e.delete(); err != nil {
				return err
			}
		}
		log.Printf("Not deleting cluster as it does not exist")
	case CreateAction:
		//nolint:nestif
		if !exists {
			log.Printf("Creating cluster ...")
			if err := e.ensureWorkDir(); err != nil {
				return fmt.Errorf("while ensuring work dir %w", err)
			}
			var createCfg bytes.Buffer
			if err := template.Must(template.New("").Parse(clusterCreationTemplate)).Execute(&createCfg, e.ctx); err != nil {
				return fmt.Errorf("while formatting cluster create cfg %w", err)
			}
			createCfgFile := filepath.Join(e.ctx["WorkDir"].(string), "cluster.yaml") //nolint:forcetypeassert
			e.ctx["CreateCfgFile"] = createCfgFile
			if err := os.WriteFile(createCfgFile, createCfg.Bytes(), 0600); err != nil {
				return fmt.Errorf("while writing create cfg %w", err)
			}
			if err := e.newCmd(`eksctl create cluster -v 1 -f {{.CreateCfgFile}}`).Run(); err != nil {
				return err
			}
			if err := e.GetCredentials(); err != nil {
				return err
			}
		} else {
			log.Printf("Not creating cluster as it already exists")
		}

		if err := setupDisks(e.plan); err != nil {
			return err
		}
		return createStorageClass()
	}
	return nil
}