in kinder/cmd/kinder/create/cluster/createcluster.go [44:100]
func NewCommand() *cobra.Command {
flags := &flagpole{}
cmd := &cobra.Command{
Args: cobra.NoArgs,
Use: "cluster",
Short: "Creates a local Kubernetes cluster",
Long: "Creates a local Kubernetes cluster using Docker container 'nodes'",
RunE: func(cmd *cobra.Command, args []string) error {
return runE(flags, cmd, args)
},
}
cmd.Flags().StringVar(
&flags.Name,
"name", constants.DefaultClusterName,
"cluster name",
)
cmd.Flags().IntVar(
&flags.ControlPlanes,
controlPlaneNodesFlagName, 1,
"number of control-plane nodes in the cluster",
)
cmd.Flags().IntVar(
&flags.Workers,
workerNodesFlagName, 0,
"number of worker nodes in the cluster",
)
cmd.Flags().StringVar(
&flags.ImageName,
"image", "",
"node docker image to use for booting the cluster",
)
cmd.Flags().BoolVar(
&flags.Retain,
"retain", false,
"retain nodes for debugging when cluster creation fails",
)
cmd.Flags().BoolVar(
&flags.ExternalEtcd,
"external-etcd", false,
"create an external etcd container and setup kubeadm for using it",
)
cmd.Flags().BoolVar(
&flags.ExternalLoadBalancer,
"external-load-balancer", false,
"add an external load balancer to the cluster (implicit if number of control-plane nodes>1)",
)
cmd.Flags().StringSliceVar(
&flags.Volumes,
"volume", nil,
"mount a volume on node containers",
)
cmd.MarkFlagRequired("image")
return cmd
}