Files
2025-07-21 19:30:02 +02:00

36 lines
817 B
Go

package cluster
import (
"fmt"
"github.com/psviderski/uncloud/internal/ucind"
"github.com/spf13/cobra"
)
func NewCreateCommand() *cobra.Command {
opts := ucind.CreateClusterOptions{}
cmd := &cobra.Command{
Use: "create [NAME]",
Short: "Create a new cluster.",
Args: cobra.MaximumNArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
p := cmd.Context().Value("provisioner").(*ucind.Provisioner)
name := DefaultClusterName
if len(args) > 0 {
name = args[0]
}
if _, err := p.CreateCluster(cmd.Context(), name, opts); err != nil {
return fmt.Errorf("create cluster '%s': %w", name, err)
}
fmt.Printf("Cluster '%s' created.\n", name)
return nil
},
}
cmd.Flags().IntVarP(&opts.Machines, "machines", "m", 1, "Number of machines to create.")
return cmd
}