ALIYUN::CS::KubernetesCluster is used to create a Dedicated Kubernetes cluster.

Syntax

{
  "Type": "ALIYUN::CS::KubernetesCluster",
  "Properties": {
    "MasterAutoRenew": Boolean,
    "CloudMonitorFlags": Boolean,
    "ProxyMode": String,
    "MasterInstanceTypes": List,
    "WorkerInstanceChargeType": String,
    "SnatEntry": Boolean,
    "WorkerPeriod": Number,
    "WorkerPeriodUnit": String,
    "WorkerSystemDiskCategory": String,
    "WorkerVSwitchIds": List,
    "MasterInstanceChargeType": String,
    "VpcId": String,
    "Tags": List,
    "MasterAutoRenewPeriod": Number,
    "CpuPolicy": String,
    "WorkerInstanceTypes": List,
    "WorkerDataDisks": List,
    "LoginPassword": String,
    "ContainerCidr": String,
    "NumOfNodes": Number,
    "Name": String,
    "WorkerSystemDiskSize": Number,
    "NodePortRange": String,
    "SshFlags": Boolean,
    "Taint": List,
    "MasterDataDisk": Boolean,
    "MasterSystemDiskCategory": String,
    "WorkerAutoRenewPeriod": Number,
    "WorkerDataDisk": Boolean,
    "WorkerAutoRenew": Boolean,
    "Addons": List,
    "DisableRollback": Boolean,
    "ServiceCidr": String,
    "KubernetesVersion": String,
    "MasterPeriod": Number,
    "SecurityGroupId": String,
    "KeyPair": String,
    "MasterVSwitchIds": List,
    "EndpointPublicAccess": Boolean,
    "MasterSystemDiskSize": Number,
    "MasterDataDisks": List,
    "MasterCount": Number,
    "TimeoutMins": Number,
    "MasterPeriodUnit": String
  }
}

Properties

Parameter Type Required Editable Description Constraint
MasterAutoRenew Boolean Erased Released Whether the Master node is auto-renewal. This parameter takes effect only when the MasterInstanceChargeType is set to PrePaid.
Valid values:
  • true
  • false

Default value: true.

CloudMonitorFlags Boolean Erased Released Specifies whether to install the CloudMonitor plug-in. Valid values:
  • true
  • false

Default value: false.

ProxyMode String No Released kube-proxy proxy mode. Valid values:
  • The iptables
  • IPVS

Default value: iptables.

MasterInstanceTypes List Yes Not supported The ECS instance type of the Master node. For more information, see Instance families. You must enter three ECS instance types. ECS instance types can be the same.
WorkerInstanceChargeType String No Released The billing method of Worker nodes. Valid values:
  • PrePaid: subscription
  • PostPaid: pay-as-you-go

Default value: PostPaid.

SnatEntry Boolean Erased Released Whether to configure SNAT.
  • If the VPC network has Internet access, set this parameter to false.
  • If the VPC network has no Internet access:
    • Set the parameter to true, which indicates that SNAT is configured and the public network can be accessed.
    • Set this parameter to false to not configure SNAT. The cluster will have no Internet access.
WorkerPeriod Number Erased Released The subscription duration. This parameter takes effect and is required when WorkerInstanceChargeType is set to PrePaid. Valid values:
  • When the WorkerPeriodUnit is set to Week, the WorkerPeriod parameter can be set to 1, 2, 3, or 4.
  • Valid values for WorkerPeriodUnit=Month: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, and 60.
WorkerPeriodUnit String No Released The subscription type. The WorkerInstanceChargeType of the subscription period. This parameter is required when the value of the Subscription parameter is set to PrePaid. Default value: Month. Valid values:
  • Week
  • Month

Default value: Month

WorkerSystemDiskCategory String No Released The system disk type of worker nodes. Valid values:
  • cloud_efficiency: ultra disk.
  • cloud_ssd: standard SSD.

Default value: cloud_efficiency.

WorkerVSwitchIds List Yes Not supported The vSwitch IDs of Worker nodes. A maximum of five vswitchids can be specified.
MasterInstanceChargeType String No Released The billing method of the Master node. Valid values:
  • PrePaid: subscription
  • PostPaid: pay-as-you-go

Default value: PostPaid.

VpcId String Yes Not supported The ID of the virtual private cloud (VPC) that is connected to the instances. If this parameter is not set, the system automatically creates a VPC network with CIDR block 192.168.0.0/16.

The values of VpcId and MasterVSwitchIds must be both specified or specified at the same time.

Tags List Erased Released The label of the cluster. Up to 20 groups of tags can be set.
MasterAutoRenewPeriod Number Erased Released Master node auto-renewal cycle. This parameter takes effect and is required only when subscription and auto-renewal are selected.
  • When MasterPeriodUnit is set to Week, the optional values are 1, 2, and 3.
  • MasterPeriodUnit=Month. Valid values: 1, 2, 3, 6, and 12.

Default value: 1.

CpuPolicy String No Released The CPU policy. When the cluster version is 1.12.6 and later, the static and none methods are supported.

Default value: none.

WorkerInstanceTypes List Yes Not supported The instance type of Worker nodes. For more information, seeInstance families None.
WorkerDataDisks List Erased Released Worker data disk type, size, and other configurations. This parameter is valid only when data disks are attached to Worker nodes.
LoginPassword String No Released The SSH logon password. The password must be 8 to 30 characters in length and must contain three of the following character types: uppercase letters, lowercase letters, digits, and special character. Select either this parameter or KeyPair.
ContainerCidr String No Released CIDR block of the container. It conflicts with the VPC CIDR block. If the VPC network is automatically created by the system, the container CIDR block is set to 172.16.0.0/16 by default.
NumOfNodes Number Erased Released The number of worker nodes. Valid values: 0 to 300.

Default value: 3.

Name String Yes Not supported The name of the cluster. The name must be 1 to 63 characters in length and can contain letters, Chinese characters, digits, and hyphens (-).
WorkerSystemDiskSize Number Erased Released The system disk size of Worker nodes. Default value: 120.

Unit: GiB.

NodePortRange String No Released The port range of nodes. Valid values: 30000 to 65535. A value must be separated with a hyphen (-).

Default value: 30000-65535.

SshFlags Boolean Erased Released Specifies whether to enable SSH access through the Internet. Valid values:
  • true
  • false
Taint List Erased Released Taints are applied to nodes for scheduling policies of Pods. Tolerations are applied to Pods. If a pod has a toleration that matches the taint on a node, this pod can be scheduled to the node.
MasterDataDisk Boolean Erased Released Whether data disks are attached to Master nodes. Valid values:
  • true
  • false

Default value: false.

MasterSystemDiskCategory String No Released The system disk type of Master nodes. Valid values:
  • cloud_efficiency: ultra disk.
  • cloud_ssd: standard SSD
WorkerAutoRenewPeriod Number Erased Released The auto-renewal period. It takes effect and is required only when subscription and auto-renewal are selected.
  • When WorkerPeriodUnit=Week, valid values include 1, 2, and 3.
  • Valid values for WorkerPeriodUnit: 1, 2, 3, 6, and 12 when the value is Month.
WorkerDataDisk Boolean Erased Released Indicates whether data disks are attached to the Worker nodes. Valid values:
  • true
  • false

Default value: false.

WorkerAutoRenew Boolean Erased Released Whether to enable the Worker node auto-renewal. Valid values:
  • true
  • false

Default value: true.

Addons List Erased Released The add-ons to the Kubernetes cluster. None.
DisableRollback Boolean Erased Released Whether to roll back if the cluster fails to be created. Valid values:
  • A value of true indicates no.
  • A value of false indicates yes.

Default value: true.

If you choose to roll back when the operation fails, resources created during the operation are released. We recommend that you set this parameter to false.
ServiceCidr String No Released The service CIDR block. It cannot conflict with the VPC and CIDR block of the container. If the VPC network is automatically created by the system, the service CIDR block is set to 172.19.0.0/20 by default.
KubernetesVersion String No Released The version of Kubernetes. Valid values:
  • 1.12.6-aliyun.1
  • 1.14.8-aliyun.1

Default value: 1.14.8-aliyun.1

MasterPeriod Number Erased Released The subscription duration. This parameter takes effect and is required only when the value of the MasterInstanceChargeType parameter is set to PrePaid.
Valid values:
  • When MasterPeriodUnit is equal to Week, the value range of MasterPeriod is 1,2,3, and 4.
  • Valid values of MasterPeriod when MasterPeriodUnit is set to Month: 1,2,3,4,5,6,7,8,9,12,24,36,48, and 60.
Default value: 1.
SecurityGroupId String No Released The ID of the security group to which the ECS instances in the cluster belong. None.
KeyPair String No Released The names of the target key pairs. Select between LoginPassword and LoginPassword.
MasterVSwitchIds List Yes Not supported The vSwitch ID of the Master node. You must specify three vSwitch ids. The vSwitch IDs can be the same. We recommend that you select three vswitches for high availability.
EndpointPublicAccess Boolean Erased Released Specifies whether to enable the API server. Valid values:
  • true: allows the public network to access APIServer.
  • A value of false indicates that Internet access to the API is denied.
Default value: false.
MasterSystemDiskSize Number Erased Released The system disk size of the Master nodes. Default value: 120.

Unit: GiB.

MasterDataDisks List Erased Released Master data disk type, size, and other configurations. This parameter is valid only when the data disk of a Master node is attached.
MasterCount Number Erased Released The number of Master nodes. Valid values:
  • 3
  • 5
Default value: 3.
TimeoutMins Number Erased Released The timeout period for creating the cluster resource stack. Default value: 60.

Unit: minutes.

MasterPeriodUnit String No Released The billing cycle of the dedicated Master node. This parameter is required when the MasterInstanceChargeType is set to PrePaid.
Default value: Month. Valid values:
  • Week
  • Month
Default value: Month

Tags syntax

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]

Tags properties

Parameter Type Required Editable Description Constraint
Key String Yes Not supported The tag key of the Table Store instance. It must be 1 to 64 characters in length, and cannot start with aliyun, acs:, https:// or http:// the beginning.
Value String Yes Not supported The tag value of the Table Store instance. The description must be 0 to 63 characters in length. It cannot start with aliyun, acs:, https:// or http:// the beginning.

MasterDataDisks syntax

"MasterDataDisks": [
  {
    "Category": String,
    "Size": Number
  }
]

MasterDataDisks properties

Parameter Type Required Editable Description Constraint
Category String Yes Not supported The data disk type of Master nodes. Valid values:
  • cloud: indicates a basic disk.
  • cloud_ssd: standard SSD
  • cloud_efficiency: ultra disk
Size Number Yes Not supported The data disk size of Master nodes. Valid values: 40 to 32768.

Unit: GiB.

WorkerDataDisks syntax

"WorkerDataDisks": [
  {
    "Category": String,
    "Size": Number
  }
]

WorkerDataDisks properties

Parameter Type Required Editable Description Constraint
Category String Yes Not supported The data disk type of Worker nodes. Valid values:
  • cloud: indicates a basic disk.
  • cloud_ssd: standard SSD
  • cloud_efficiency: ultra disk
Size Number Yes Not supported The data disk size of worker nodes. Valid values: 40 to 32768.

Unit: GiB.

Addons syntax

"Addons": [
  {
    "Version": String,
    "Config": String,
    "Name": String
  }
]

Addons properties

Parameter Type Required Editable Description Constraint
Version String No Released Version of the Addon plug-in. If this value is null, the latest version is used.
Config String No Released Configuration of the Addon plug-in. If the value is empty, the configuration is not required.
Name String Yes Not supported The name of the Addon plug-in. Valid values: 1025 to 10000. You cannot use the following commonly used port numbers: 2222, 4500, 4510, 4560, 7505, 9000, 9001, and 9002.

Return value

Fn::GetAtt
  • ClusterId: The ID of the cluster.
  • TaskId: The ID of the task. It is system-assigned and can be used to query the task status.

Examples

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "KubernetesCluster": {
      "Type": "ALIYUN::CS::KubernetesCluster",
      "Properties": {
        "MasterAutoRenew": {
          "Ref": "MasterAutoRenew"
        },
        "CloudMonitorFlags": {
          "Ref": "CloudMonitorFlags"
        },
        "ProxyMode": {
          "Ref": "ProxyMode"
        },
        "MasterInstanceTypes": {
          "Fn::Split": [
            ",",
            {
              "Ref": "MasterInstanceTypes"
            }
          ]
        },
        "WorkerDataDisk": {
          "Ref": "WorkerDataDisk"
        },
        "SnatEntry": {
          "Ref": "SnatEntry"
        },
        "WorkerPeriod": {
          "Ref": "WorkerPeriod"
        },
        "WorkerPeriodUnit": {
          "Ref": "WorkerPeriodUnit"
        },
        "WorkerSystemDiskCategory": {
          "Ref": "WorkerSystemDiskCategory"
        },
        "WorkerVSwitchIds": {
          "Fn::Split": [
            ",",
            {
              "Ref": "WorkerVSwitchIds"
            }
          ]
        },
        "MasterInstanceChargeType": {
          "Ref": "MasterInstanceChargeType"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "Tags": {
          "Ref": "Tags"
        },
        "MasterAutoRenewPeriod": {
          "Ref": "MasterAutoRenewPeriod"
        },
        "CpuPolicy": {
          "Ref": "CpuPolicy"
        },
        "WorkerInstanceTypes": {
          "Fn::Split": [
            ",",
            {
              "Ref": "WorkerInstanceTypes"
            }
          ]
        },
        "WorkerDataDisks": {
          "Ref": "WorkerDataDisks"
        },
        "LoginPassword": {
          "Ref": "LoginPassword"
        },
        "ContainerCidr": {
          "Ref": "ContainerCidr"
        },
        "NumOfNodes": {
          "Ref": "NumOfNodes"
        },
        "Name": {
          "Ref": "Name"
        },
        "NodePortRange": {
          "Ref": "NodePortRange"
        },
        "SshFlags": {
          "Ref": "SshFlags"
        },
        "Taint": {
          "Ref": "Taint"
        },
        "MasterDataDisk": {
          "Ref": "MasterDataDisk"
        },
        "MasterSystemDiskCategory": {
          "Ref": "MasterSystemDiskCategory"
        },
        "WorkerAutoRenewPeriod": {
          "Ref": "WorkerAutoRenewPeriod"
        },
        "WorkerInstanceChargeType": {
          "Ref": "WorkerInstanceChargeType"
        },
        "WorkerAutoRenew": {
          "Ref": "WorkerAutoRenew"
        },
        "Addons": {
          "Ref": "Addons"
        },
        "DisableRollback": {
          "Ref": "DisableRollback"
        },
        "ServiceCidr": {
          "Ref": "ServiceCidr"
        },
        "KubernetesVersion": {
          "Ref": "KubernetesVersion"
        },
        "MasterPeriod": {
          "Ref": "MasterPeriod"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroupId"
        },
        "KeyPair": {
          "Ref": "KeyPair"
        },
        "MasterCount": {
          "Ref": "MasterCount"
        },
        "MasterVSwitchIds": {
          "Fn::Split": [
            ",",
            {
              "Ref": "MasterVSwitchIds"
            }
          ]
        },
        "EndpointPublicAccess": {
          "Ref": "EndpointPublicAccess"
        },
        "MasterSystemDiskSize": {
          "Ref": "MasterSystemDiskSize"
        },
        "MasterPeriodUnit": {
          "Ref": "MasterPeriodUnit"
        },
        "WorkerSystemDiskSize": {
          "Ref": "WorkerSystemDiskSize"
        },
        "TimeoutMins": {
          "Ref": "TimeoutMins"
        },
        "MasterDataDisks": {
          "Ref": "MasterDataDisks"
        }
      }
    }
  },
  "Parameters": {
    "MasterAutoRenew": {
      "Default": true,
      "Type": "Boolean",
      "Description": "Whether the master node automatically renews. It takes effect when the value of MasterInstanceChargeType is PrePaid. The optional values are:\ntrue: automatic renewal\nfalse: do not renew automatically\nDefault to true.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "CloudMonitorFlags": {
      "Default": false,
      "Type": "Boolean",
      "Description": "Whether to install the cloud monitoring plugin:\ntrue: indicates installation\nfalse: Do not install\nDefault to false",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "ProxyMode": {
      "Default": "iptables",
      "Type": "String",
      "Description": "kube-proxy proxy mode, supports both iptables and IPVS modes. The default is iptables.",
      "AllowedValues": [
        "iptables",
        "IPVS"
      ]
    },
    "MasterInstanceTypes": {
      "MinLength": 3,
      "Type": "CommaDelimitedList",
      "Description": "Master node ECS specification type code. For more details, see Instance Type Family. Each item correspond to MasterVSwitchIds.\nList size must be 3, Instance Type can be repeated.",
      "MaxLength": 3
    },
    "WorkerDataDisk": {
      "Default": false,
      "Type": "Boolean",
      "Description": "Whether to mount the data disk. The options are as follows:\ntrue: indicates that the worker node mounts data disks.\nfalse: indicates that the worker node does not mount data disks.\nDefault to false.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "SnatEntry": {
      "Default": true,
      "Type": "Boolean",
      "Description": "Whether to configure SNAT for the network.\nWhen a VPC can access the public network environment, set it to false.\nWhen an existing VPC cannot access the public network environment:\nWhen set to True, SNAT is configured and the public network environment can be accessed at this time.\nIf set to false, it means that SNAT is not configured and the public network environment cannot be accessed at this time.\nDefault to true.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "WorkerPeriod": {
      "Default": 1,
      "Type": "Number",
      "Description": "The duration of the annual and monthly subscription. It takes effect when the worker_instance_charge_type value is PrePaid and is required. The value range is:\nWhen PeriodUnit = Week, Period values are: {\"1\", \"2\", \"3\", \"4\"}\nWhen PeriodUnit = Month, Period values are: {"1", "2", "3", "4", "5", "6", "7", "8", "9", "12", "24", "36", "48", "60"}\nDefault to 1.",
      "AllowedValues": [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        12,
        24,
        36,
        48,
        60
      ]
    },
    "WorkerPeriodUnit": {
      "Default": "Month",
      "Type": "String",
      "Description": "When you specify PrePaid, you need to specify the period. The options are:\nWeek: Time is measured in weeks\nMonth: time in months\nDefault to Month.",
      "AllowedValues": [
        "Week",
        "Month"
      ]
    },
    "WorkerSystemDiskCategory": {
      "Default": "cloud_efficiency",
      "Type": "String",
      "Description": "Worker node system disk type. The value range is:\ncloud_efficiency: efficient cloud disk\ncloud_ssd: SSD cloud disk\nDefault to cloud_efficiency.",
      "AllowedValues": [
        "cloud_efficiency",
        "cloud_ssd"
      ]
    },
    "WorkerVSwitchIds": {
      "MinLength": 1,
      "Type": "CommaDelimitedList",
      "Description": "The virtual switch ID of the worker node."
    },
    "MasterInstanceChargeType": {
      "Default": "PostPaid",
      "Type": "String",
      "Description": "Master node payment type. The optional values are:\nPrePaid: prepaid\nPostPaid: Pay as you go\nDefault to PostPaid.",
      "AllowedValues": [
        "PrePaid",
        "PostPaid"
      ]
    },
    "VpcId": {
      "Type": "String",
      "Description": "VPC ID."
    },
    "Tags": {
      "Type": "Json",
      "Description": "Tag the cluster."
    },
    "MasterAutoRenewPeriod": {
      "Default": 1,
      "Type": "Number",
      "Description": "Automatic renewal cycle, which takes effect when prepaid and automatic renewal are selected, and is required:\nWhen PeriodUnit = Week, the values are: {\"1\", \"2\", \"3\"}\nWhen PeriodUnit = Month, the value is {\"1\", \"2\", \"3\", \"6\", \"12\"}\nDefault to 1.",
      "AllowedValues": [
        1,
        2,
        3,
        6,
        12
      ]
    },
    "CpuPolicy": {
      "Default": "none",
      "Type": "String",
      "Description": "CPU policy. The cluster version is 1.12.6 and above supports both static and none strategies. The default is none."
    },
    "WorkerInstanceTypes": {
      "MinLength": 1,
      "Type": "CommaDelimitedList",
      "Description": "Worker node ECS specification type code. For more details, see Instance Specification Family.",
      "MaxLength": 10
    },
    "WorkerDataDisks": {
      "Type": "Json",
      "Description": "A combination of configurations such as worker data disk type and size. This parameter is valid only when the worker node data disk is mounted."
    },
    "LoginPassword": {
      "Type": "String",
      "Description": "SSH login password. Password rules are 8-30 characters and contain three items (upper and lower case letters, numbers, and special symbols). Specify one of KeyPair or LoginPassword."
    },
    "ContainerCidr": {
      "Default": "172.16.0.0/16",
      "Type": "String",
      "Description": "The container network segment cannot conflict with the VPC network segment. When the system is selected to automatically create a VPC, the network segment 172.16.0.0/16 is used by default."
    },
    "NumOfNodes": {
      "Default": 3,
      "Type": "Number",
      "Description": "Number of worker nodes. The range is [0,300].\nDefault to 3.",
      "MaxValue": 300,
      "MinValue": 0
    },
    "Name": {
      "Type": "String",
      "Description": "The name of the cluster. The cluster name can use uppercase and lowercase letters, Chinese characters, numbers, and dashes."
    },
    "NodePortRange": {
      "Default": "30000-65535",
      "Type": "String",
      "Description": "Node service port. The value range is [30000, 65535].\nDefault to 30000-65535."
    },
    "SshFlags": {
      "Type": "Boolean",
      "Description": "Whether to enable public network SSH login:\ntrue: open\nfalse: not open",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "Taint": {
      "Type": "Json",
      "Description": "It is used to mark nodes with taints. It is usually used for the scheduling strategy of Pods. The corresponding concept is: tolerance. If there is a corresponding tolerance mark on the Pods, the stain on the node can be tolerated and scheduled to the node."
    },
    "MasterDataDisk": {
      "Default": false,
      "Type": "Boolean",
      "Description": "Whether the master node mounts data disks can be selected as:\ntrue: mount the data disk\nfalse: no data disk is mounted, default is false",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "MasterSystemDiskCategory": {
      "Default": "cloud_ssd",
      "Type": "String",
      "Description": "Master disk system disk type. The value range is:\ncloud_efficiency: efficient cloud disk\ncloud_ssd: SSD cloud disk\nDefault to cloud_ssd.",
      "AllowedValues": [
        "cloud_efficiency",
        "cloud_ssd"
      ]
    },
    "WorkerAutoRenewPeriod": {
      "Default": 1,
      "Type": "Number",
      "Description": "Automatic renewal cycle, which takes effect when prepaid and automatic renewal are selected, and is required:\nWhen PeriodUnit = Week, the values are: {\"1\", \"2\", \"3\"}\nWhen PeriodUnit = Month, the value is {\"1\", \"2\", \"3\", \"6\", \"12\"}\nDefault to 1.",
      "AllowedValues": [
        1,
        2,
        3,
        6,
        12
      ]
    },
    "WorkerInstanceChargeType": {
      "Default": "PostPaid",
      "Type": "String",
      "Description": "Worker node payment type. The optional values are:\nPrePaid: prepaid\nPostPaid: Pay as you go\nDefault to PostPaid.",
      "AllowedValues": [
        "PrePaid",
        "PostPaid"
      ]
    },
    "WorkerAutoRenew": {
      "Default": true,
      "Type": "Boolean",
      "Description": "Whether to enable automatic renewal of Worker nodes. The optional values are:\ntrue: automatic renewal\nfalse: do not renew automatically\nDefault to true.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "Addons": {
      "Type": "Json",
      "Description": "A combination of addon plugins for Kubernetes clusters.\nNetwork plug-in: including Flannel and Terway network plug-ins\nLog service: Optional. If the log service is not enabled. the cluster audit function cannot be used.\nIngress: The installation of the Ingress component is enabled by default."
    },
    "DisableRollback": {
      "Default": true,
      "Type": "Boolean",
      "Description": "Whether the failure was rolled back:\ntrue: indicates that it fails to roll back\nfalse: rollback failed\nThe default is true. If rollback fails, resources produced during the creation process will be released. False is not recommended.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "ServiceCidr": {
      "Default": "172.19.0.0/20",
      "Type": "String",
      "Description": "The service network segment cannot conflict with the VPC network segment and the container network segment. When the system is selected to automatically create a VPC, the network segment 172.19.0.0/20 is used by default."
    },
    "KubernetesVersion": {
      "Default": "1.14.8-aliyun.1",
      "Type": "String",
      "Description": "Kubernetes version. Default to 1.14.8-aliyun.1 .",
      "AllowedValues": [
        "1.12.6-aliyun.1",
        "1.14.8-aliyun.1"
      ]
    },
    "MasterPeriod": {
      "Default": 1,
      "Type": "Number",
      "Description": "The duration of the annual subscription and monthly subscription. It takes effect when the master_instance_charge_type value is PrePaid and is a required value. The value range is:\nWhen PeriodUnit = Week, Period values are: {\"1\", \"2\", \"3\", \"4\"}\nWhen PeriodUnit = Month, Period values are: {"1", "2", "3", "4", "5", "6", "7", "8", "9", "12", "24", "36", "48", "60"}\nDefault to 1.",
      "AllowedValues": [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        12,
        24,
        36,
        48,
        60
      ]
    },
    "SecurityGroupId": {
      "Type": "String",
      "Description": "Specifies the ID of the security group to which the cluster ECS instance belongs."
    },
    "KeyPair": {
      "Type": "String",
      "Description": "Key pair name. Specify one of KeyPair or LoginPassword."
    },
    "MasterCount": {
      "Default": 3,
      "Type": "Number",
      "Description": "Number of master instances. The value can be 3 or 5. The default value is 3.",
      "AllowedValues": [
        3,
        5
      ]
    },
    "MasterVSwitchIds": {
      "MinLength": 3,
      "Type": "CommaDelimitedList",
      "Description": "Master node switch ID. To ensure high availability of the cluster, it is recommended that you select 3 switches and distribute them in different Availability Zones.\nList size must be 3, VSwitchId can be repeated.",
      "MaxLength": 3
    },
    "EndpointPublicAccess": {
      "Default": false,
      "Type": "Boolean",
      "Description": "Whether to enable the public network API Server:\ntrue: The default is True, which means that the public network API Server is open.\nfalse: If set to false, the API server on the public network will not be created, only the API server on the private network will be created.Default to false.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "MasterSystemDiskSize": {
      "Default": 120,
      "Type": "Number",
      "Description": "Master disk system disk size in GiB.\nDefault to 120.",
      "MinValue": 1
    },
    "MasterPeriodUnit": {
      "Default": "Month",
      "Type": "String",
      "Description": "When you specify PrePaid, you need to specify the period. The options are:\nWeek: Time is measured in weeks\nMonth: time in months\nDefault to Month",
      "AllowedValues": [
        "Week",
        "Month"
      ]
    },
    "WorkerSystemDiskSize": {
      "Default": 120,
      "Type": "Number",
      "Description": "Worker disk system disk size, the unit is GiB.\nDefault to 120.",
      "MinValue": 1
    },
    "TimeoutMins": {
      "Default": 60,
      "Type": "Number",
      "Description": "Cluster resource stack creation timeout, in minutes. The default value is 60."
    },
    "MasterDataDisks": {
      "Type": "Json",
      "Description": "Master data disk type, size and other configuration combinations. This parameter is valid only when the master node data disk is mounted."
    }
  },
  "Outputs": {
    "ClusterId": {
      "Description": "Cluster instance ID.",
      "Value": {
        "Fn::GetAtt": [
          "KubernetesCluster",
          "ClusterId"
        ]
      }
    },
    "TaskId": {
      "Description": "Task ID. Automatically assigned by the system, the user queries the task status.",
      "Value": {
        "Fn::GetAtt": [
          "KubernetesCluster",
          "TaskId"
        ]
      }
    }
  }
}

YML example

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  KubernetesCluster:
    Type: 'ALIYUN::CS::KubernetesCluster'
    Properties:
      MasterAutoRenew:
        Ref: MasterAutoRenew
      CloudMonitorFlags:
        Ref: CloudMonitorFlags
      ProxyMode:
        Ref: ProxyMode
      MasterInstanceTypes:
        'Fn::Split':
          -','
          -Ref: MasterInstanceTypes
      WorkerDataDisk:
        Ref: WorkerDataDisk
      SnatEntry:
        Ref: SnatEntry
      WorkerPeriod:
        Ref: WorkerPeriod
      WorkerPeriodUnit:
        Ref: WorkerPeriodUnit
      WorkerSystemDiskCategory:
        Ref: WorkerSystemDiskCategory
      WorkerVSwitchIds:
        'Fn::Split':
          -','
          -Ref: WorkerVSwitchIds
      MasterInstanceChargeType:
        Ref: MasterInstanceChargeType
      VpcId:
        Ref: VpcId
      Tags:
        Ref: Tags
      MasterAutoRenewPeriod:
        Ref: MasterAutoRenewPeriod
      CpuPolicy:
        Ref: CpuPolicy
      WorkerInstanceTypes:
        'Fn::Split':
          -','
          -Ref: WorkerInstanceTypes
      WorkerDataDisks:
        Ref: WorkerDataDisks
      LoginPassword:
        Ref: LoginPassword
      ContainerCidr:
        Ref: ContainerCidr
      NumOfNodes:
        Ref: NumOfNodes
      Name:
        Ref: Name
      NodePortRange:
        Ref: NodePortRange
      SshFlags:
        Ref: SshFlags
      Taint:
        Ref: Taint
      MasterDataDisk:
        Ref: MasterDataDisk
      MasterSystemDiskCategory:
        Ref: MasterSystemDiskCategory
      WorkerAutoRenewPeriod:
        Ref: WorkerAutoRenewPeriod
      WorkerInstanceChargeType:
        Ref: WorkerInstanceChargeType
      WorkerAutoRenew:
        Ref: WorkerAutoRenew
      Addons:
        Ref: Addons
      DisableRollback:
        Ref: DisableRollback
      ServiceCidr:
        Ref: ServiceCidr
      KubernetesVersion:
        Ref: KubernetesVersion
      MasterPeriod:
        Ref: MasterPeriod
      SecurityGroupId:
        Ref: SecurityGroupId
      KeyPair:
        Ref: KeyPair
      MasterCount:
        Ref: MasterCount
      MasterVSwitchIds:
        'Fn::Split':
          -','
          -Ref: MasterVSwitchIds
      EndpointPublicAccess:
        Ref: EndpointPublicAccess
      MasterSystemDiskSize:
        Ref: MasterSystemDiskSize
      MasterPeriodUnit:
        Ref: MasterPeriodUnit
      WorkerSystemDiskSize:
        Ref: WorkerSystemDiskSize
      TimeoutMins:
        Ref: TimeoutMins
      MasterDataDisks:
        Ref: MasterDataDisks
Parameters:
  MasterAutoRenew:
    Default: true
    Type: Boolean
    Description: >-
      Whether the master node automatically renews. It takes effect when the
      value of MasterInstanceChargeType is PrePaid. The optional values are:

      true: automatic renewal

      false: do not renew automatically

      Default to true.
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  CloudMonitorFlags:
    Default: false
    Type: Boolean
    Description: |-
      Whether to install the cloud monitoring plugin:
      true: indicates installation
      false: Do not install
      Default to false
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  ProxyMode:
    Default: iptables
    Type: String
    Description: >-
      kube-proxy proxy mode, supports both iptables and IPVS modes. The default
      is iptables.
    AllowedValues:
      -iptables
      -IPVS
  MasterInstanceTypes:
    MinLength: 3
    Type: CommaDelimitedList
    Description: >-
      Master node ECS specification type code. For more details, see Instance
      Type Family. Each item correspond to MasterVSwitchIds.

      List size must be 3, Instance Type can be repeated.
    MaxLength: 3
  WorkerDataDisk:
    Default: false
    Type: Boolean
    Description: |-
      Whether to mount the data disk. The options are as follows:
      true: indicates that the worker node mounts data disks.
      false: indicates that the worker node does not mount data disks.
      Default to false.
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  SnatEntry:
    Default: true
    Type: Boolean
    Description: >-
      Whether to configure SNAT for the network.

      When a VPC can access the public network environment, set it to false.

      When an existing VPC cannot access the public network environment:

      When set to True and SNAT is configured and the public network environment
      can be accessed at this time.

      If set to false and it means that SNAT is not configured and the public
      network environment cannot be accessed at this time.

      Default to true.
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  WorkerPeriod:
    Default: 1
    Type: Number
    Description: >-
      The duration of the annual and monthly subscription. It takes effect when
      the worker_instance_charge_type value is PrePaid and is required. The
      value range is:

      The When PeriodUnit = Week. Period values are: {"1", "2", "3", "4"}.

      When PeriodUnit = Month, Period values are: {"1", "2", "3", "4", "5", "6",
      "7", "8", "9", "12", "24", "36", "48", "60"}

      Default to 1.
    AllowedValues:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 12
      - 24
      - 36
      -48
      -60
  WorkerPeriodUnit:
    Default: Month
    Type: String
    Description: |-
      When you specify PrePaid, you need to specify the period. The options are:
      Week: Time is measured in weeks
      Month: time in months
      Default to Month.
    AllowedValues:
      -Week
      -Month
  WorkerSystemDiskCategory:
    Default: cloud_efficiency
    Type: String
    Description: |-
      Worker node system disk type. The value range is:
      cloud_efficiency: efficient cloud disk
      cloud_ssd: SSD cloud disk
      Default to cloud_efficiency.
    AllowedValues:
      - cloud_efficiency
      - cloud_ssd
  WorkerVSwitchIds:
    MinLength: 1
    Type: CommaDelimitedList
    Description: The virtual switch ID of the worker node.
  MasterInstanceChargeType:
    Default: PostPaid
    Type: String
    Description: |-
      Master node payment type. The optional values are:
      PrePaid: prepaid
      PostPaid: Pay as you go
      Default to PostPaid.
    AllowedValues:
      -PrePaid
      -PostPaid
  VpcId:
    Type: String
    Description: VPC ID.
  Tags:
    Type: Json
    Description: Tag the cluster.
  MasterAutoRenewPeriod:
    Default: 1
    Type: Number
    Description: >-
      Automatic renewal cycle and which takes effect when prepaid and automatic
      renewal are selected, and is required:

      the When PeriodUnit = Week. the values are: {"1", "2", "3"}.

      When PeriodUnit = Month: the value is {"1", "2", "3", "6", "12"}.

      Default to 1.
    AllowedValues:
      - 1
      - 2
      - 3
      - 6
      - 12
  CpuPolicy:
    Default: none
    Type: String
    Description: >-
      CPU policy. The cluster version is 1.12.6 and above supports both static
      and none strategies. The default is none.
  WorkerInstanceTypes:
    MinLength: 1
    Type: CommaDelimitedList
    Description: >-
      Worker node ECS specification type code. For more details, see Instance
      Specification Family.
    MaxLength: 10
  WorkerDataDisks:
    Type: Json
    Description: >-
      A combination of configurations such as worker data disk type and size.
      This parameter is valid only when the worker node data disk is mounted.
  LoginPassword:
    Type: String
    Description: >-
      SSH login password. Password rules are 8-30 characters and contain three
      items (upper and lower case letters, numbers, and special symbols).
      Specify one of KeyPair or LoginPassword.
  ContainerCidr:
    Default: 172.16.0.0/16
    Type: String
    Description: >-
      The container network segment cannot conflict with the VPC network
      segment. When the system is selected to automatically create a VPC, the
      network segment 172.16.0.0/16 is used by default.
  NumOfNodes:
    Default: 3
    Type: Number
    Description: |-
      Number of worker nodes. The range is [0,300].
      Default to 3.
    MaxValue: 300
    MinValue: 0
  Name:
    Type: String
    Description: >-
      The name of the cluster. The cluster name can use uppercase and lowercase
      letters, Chinese characters, numbers, and dashes.
  NodePortRange:
    Default: 30000-65535
    Type: String
    Description: |-
      Node service port. The value range is [30000, 65535].
      Default to 30000-65535.
  SshFlags:
    Type: Boolean
    Description: |-
      Whether to enable public network SSH login:
      true: open
      false: not open
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  Taint:
    Type: Json
    Description: >-
      It is used to mark nodes with taints. It is usually used for the
      scheduling strategy of Pods. The corresponding concept is: tolerance. If
      there is a corresponding tolerance mark on the Pods and the stain on the node
      can be tolerated and scheduled to the node.
  MasterDataDisk:
    Default: false
    Type: Boolean
    Description: |-
      Whether the master node mounts data disks can be selected as:
      true: mount the data disk
      false: no data disk is mounted, default is false
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  MasterSystemDiskCategory:
    Default: cloud_ssd
    Type: String
    Description: |-
      Master disk system disk type. The value range is:
      cloud_efficiency: efficient cloud disk
      cloud_ssd: SSD cloud disk
      Default to cloud_ssd.
    AllowedValues:
      - cloud_efficiency
      - cloud_ssd
  WorkerAutoRenewPeriod:
    Default: 1
    Type: Number
    Description: >-
      Automatic renewal cycle and which takes effect when prepaid and automatic
      renewal are selected, and is required:

      the When PeriodUnit = Week. the values are: {"1", "2", "3"}.

      When PeriodUnit = Month: the value is {"1", "2", "3", "6", "12"}.

      Default to 1.
    AllowedValues:
      - 1
      - 2
      - 3
      - 6
      - 12
  WorkerInstanceChargeType:
    Default: PostPaid
    Type: String
    Description: |-
      Worker node payment type. The optional values are:
      PrePaid: prepaid
      PostPaid: Pay as you go
      Default to PostPaid.
    AllowedValues:
      -PrePaid
      -PostPaid
  WorkerAutoRenew:
    Default: true
    Type: Boolean
    Description: >-
      Whether to enable automatic renewal of Worker nodes. The optional values
      are:

      true: automatic renewal

      false: do not renew automatically

      Default to true.
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  Addons:
    Type: Json
    Description: >-
      A combination of addon plugins for Kubernetes clusters.

      Network plug-in: including Flannel and Terway network plug-ins

      Log service: Optional. If the log service is not enabled, the cluster
      audit function cannot be used.

      Ingress: The installation of the Ingress component is enabled by default.
  DisableRollback:
    Default: true
    Type: Boolean
    Description: >-
      Whether the failure was rolled back:

      true: indicates that it fails to roll back

      false: rollback failed

      The default is true. If rollback fails and resources produced during the
      creation process will be released. False is not recommended.
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  ServiceCidr:
    Default: 172.19.0.0/20
    Type: String
    Description: >-
      The service network segment cannot conflict with the VPC network segment
      and the container network segment. When the system is selected to
      automatically create a VPC, the network segment 172.19.0.0/20 is used by
      default.
  KubernetesVersion:
    Default: 1.14.8-aliyun.1
    Type: String
    Description: Kubernetes version. Default to 1.14.8-aliyun.1.
    AllowedValues:
      -1.12.6-aliyun.1
      -1.14.8-aliyun.1
  MasterPeriod:
    Default: 1
    Type: Number
    Description: >-
      The duration of the annual subscription and monthly subscription. It takes
      effect when the master_instance_charge_type value is PrePaid and is a
      required value. The value range is:

      The When PeriodUnit = Week. Period values are: {"1", "2", "3", "4"}.

      When PeriodUnit = Month, Period values are: {"1", "2", "3", "4", "5", "6",
      "7", "8", "9", "12", "24", "36", "48", "60"}

      Default to 1.
    AllowedValues:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 12
      - 24
      - 36
      -48
      -60
  SecurityGroupId:
    Type: String
    Description: >-
      Specifies the ID of the security group to which the cluster ECS instance
      belongs.
  KeyPair:
    Type: String
    Description: Key pair name. Specify one of KeyPair or LoginPassword.
  MasterCount:
    Default: 3
    Type: Number
    Description: >-
      Number of master instances. The value can be 3 or 5. The default value is
      3.
    AllowedValues:
      - 3
      - 5
  MasterVSwitchIds:
    MinLength: 3
    Type: CommaDelimitedList
    Description: >-
      Master node switch ID. To ensure high availability of the cluster, it is
      recommended that you select 3 switches and distribute them in different
      Availability Zones.

      List size must be 3, VSwitchId can be repeated.
    MaxLength: 3
  EndpointPublicAccess:
    Default: false
    Type: Boolean
    Description: >-
      Whether to enable the public network API Server:

      true: The default is True, which means that the public network API Server
      is open.

      false: If set to false, the API server on the public network will not be
      created, only the API server on the private network will be
      created.Default to false.
    AllowedValues:
      - 'True'
      - 'true'
      - 'False'
      - 'false'
  MasterSystemDiskSize:
    Default: 120
    Type: Number
    Description: |-
      Master disk system disk size in GiB.
      Default to 120.
    MinValue: 1
  MasterPeriodUnit:
    Default: Month
    Type: String
    Description: |-
      When you specify PrePaid, you need to specify the period. The options are:
      Week: Time is measured in weeks
      Month: time in months
      Default to Month
    AllowedValues:
      -Week
      -Month
  WorkerSystemDiskSize:
    Default: 120
    Type: Number
    Description: |-
      Worker disk system disk size, the unit is GiB.
      Default to 120.
    MinValue: 1
  TimeoutMins:
    Default: 60
    Type: Number
    Description: >-
      Cluster resource stack creation timeout, in minutes. The default value is
      60.
  MasterDataDisks:
    Type: Json
    Description: >-
      Master data disk type, size and other configuration combinations. This
      parameter is valid only when the master node data disk is mounted.
Outputs:
  ClusterId:
    Description: Cluster instance ID.
    Value:
      'Fn::GetAtt':
        -KubernetesCluster
        - ClusterId
  TaskId:
    Description: >-
      Task ID. Automatically assigned by the system and the user queries the task
      status.
    Value:
      'Fn::GetAtt':
        -KubernetesCluster
        -TaskId