NOTE: Managed Kubernetes cluster only supports VPC network and it can access internet while creating kubernetes cluster.
A Nat Gateway and configuring a SNAT for it can ensure one VPC network access internet. If there is no nat gateway in the
VPC, you can set new_nat_gateway to "true" to create one automatically.

NOTE: If there is no specified vswitch_ids, the resource will create a new VPC and VSwitch while creating managed kubernetes cluster.

NOTE: Creating managed kubernetes cluster need to install several packages and it will cost about 10 minutes. Please be patient.

NOTE: The provider supports to download kube config, client certificate, client key and cluster ca certificate
after creating cluster successfully, and you can put them into the specified location, like '~/.kube/config'.

NOTE: You need to activate several other products and confirm Authorization Policy used by Container Service before using this resource.
Please refer to the Authorization management and Cluster management sections in the Document Center.

name - The kubernetes cluster's name. It is the only in one Alicloud account.

name_prefix - The kubernetes cluster name's prefix. It is conflict with name. If it is specified, terraform will using it to build the only cluster name. Default to "Terraform-Creation".

availability_zone - (ForceNew) The Zone where new kubernetes cluster will be located. If it is not be specified, the value will be vswitch's zone.

vswitch_ids - (ForceNew) The vswitch where new kubernetes cluster will be located. Specify one vswitch's id, if it is not specified, a new VPC and VSwicth will be built. It must be in the zone which availability_zone specified.

password - (Required, ForceNew) The password of ssh login cluster node. You have to specify one of password and key_name fields.

key_name - (Required, ForceNew) The keypair of ssh login cluster node, you have to create it first.

pod_cidr - (Required, ForceNew) The CIDR block for the pod network. It will be allocated automatically when vswitch_ids is not specified.
It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.
Maximum number of hosts allowed in the cluster: 256. Refer to Plan Kubernetes CIDR blocks under VPC.

service_cidr - (Required, ForceNew) The CIDR block for the service network. It will be allocated automatically when vswitch_id is not specified.
It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.

worker_disk_size - (ForceNew) The system disk size of worker node. Its valid value range [20~32768] in GB. Default to 20.

worker_disk_category - (ForceNew) The system disk category of worker node. Its valid value are cloud_ssd and cloud_efficiency. Default to cloud_efficiency.

worker_data_disk_size - (ForceNew) The data disk size of worker node. Its valid value range [20~32768] in GB. When worker_data_disk_category is presented, it defaults to 40.

worker_data_disk_category - (ForceNew) The data disk category of worker node. Its valid value are cloud_ssd and cloud_efficiency, if not set, data disk will not be created.

worker_numbers - The worker node number of the kubernetes cluster. Default to [3]. It is limited up to 50 and if you want to enlarge it, please apply white list or contact with us.

worker_instance_types - (Required, ForceNew) The instance type of worker node. Specify one type for single AZ Cluster, three types for MultiAZ Cluster.
You can get the available kubetnetes master node instance types by datasource instance_types

worker_period - (Optional) Worker payment period. When period unit is Month, it can be one of { “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “12”, “24”, “36”,”48”,”60”}. When period unit is Week, it can be one of {“1”, “2”, “3”, “4”}.

worker_auto_renew_period - (Optional) Worker payment auto-renew period. When period unit is Month, it can be one of {“1”, “2”, “3”, “6”, “12”}. When period unit is Week, it can be one of {“1”, “2”, “3”}.