diff --git a/cmd/kops/create_cluster.go b/cmd/kops/create_cluster.go index 164005a0d87e3..477ec8c09a60b 100644 --- a/cmd/kops/create_cluster.go +++ b/cmd/kops/create_cluster.go @@ -68,6 +68,7 @@ type CreateClusterOptions struct { ControlPlaneVolumeSize int32 NodeVolumeSize int32 + NodeVolumeType string ContainerRuntime string OutDir string DisableSubnetTags bool @@ -301,6 +302,8 @@ func NewCmdCreateCluster(f *util.Factory, out io.Writer) *cobra.Command { cmd.Flags().Int32Var(&options.ControlPlaneVolumeSize, "control-plane-volume-size", options.ControlPlaneVolumeSize, "Instance volume size (in GB) for control-plane nodes") cmd.Flags().Int32Var(&options.NodeVolumeSize, "node-volume-size", options.NodeVolumeSize, "Instance volume size (in GB) for worker nodes") + cmd.Flags().StringVar(&options.NodeVolumeType, "node-volume-type", options.NodeVolumeType, "Instance volume type (e.g. gp2, gp3, io1) for worker nodes") + cmd.Flags().StringVar(&options.NetworkID, "vpc", options.NetworkID, "Shared Network or VPC to use") cmd.Flags().MarkDeprecated("vpc", "use --network-id instead") cmd.RegisterFlagCompletionFunc("vpc", completeNetworkID) @@ -625,6 +628,15 @@ func RunCreateCluster(ctx context.Context, f *util.Factory, out io.Writer, c *Cr } } + if c.NodeVolumeType != "" { + for _, group := range nodes { + if group.Spec.RootVolume == nil { + group.Spec.RootVolume = &api.InstanceRootVolumeSpec{} + } + group.Spec.RootVolume.Type = fi.PtrTo(c.NodeVolumeType) + } + } + if c.DNSZone != "" { cluster.Spec.DNSZone = c.DNSZone } diff --git a/docs/cli/kops_create_cluster.md b/docs/cli/kops_create_cluster.md index bed518bbd0605..5a5fce49c768a 100644 --- a/docs/cli/kops_create_cluster.md +++ b/docs/cli/kops_create_cluster.md @@ -107,6 +107,7 @@ kops create cluster [CLUSTER] [flags] --node-size strings Machine type(s) for worker nodes --node-tenancy string Tenancy of the node group (AWS only): default or dedicated --node-volume-size int32 Instance volume size (in GB) for worker nodes + --node-volume-type string Instance volume type (e.g. gp2, gp3, io1) for worker nodes --os-dns-servers string comma separated list of DNS Servers which is used in network --os-ext-net string External network to use with the openstack router --os-ext-subnet string External floating subnet to use with the openstack router