Updated on 2022-02-22 GMT+08:00

CCE.Cluster

Element Description

The CCE.Cluster element is used to deploy Kubernetes cluster resources at the PaaS layer. A master node can be created based on this element to manage and create worker nodes. This element provides the application orchestration function for users.

Element Properties

Table 1 Property Description

Property

Mandatory

Description

multiAZ

No

Multi-AZ cluster

Type: boolean

Default: False

Value Constraint: Only when HA clusters are used, for example, clusters of cce.s2 specifications, can you set this parameter to true.

Suggestion: If multiAZ is set to true, the cluster flavor must support multi-AZ cluster creation, for example, flavors of cce.s2 specifications.

vpcId

Yes

VPC ID

Type: Cloud.VPC.VPC.Id

Value Constraint: An existing or new VPC ID can be used. To use a new VPC ID, you need to define the VPC object in the template and establish the dependency.

Suggestion: 1. Use the get_input function to set this field, and then the value can be automatically selected on the AOS console. 2. Use the get_reference function to obtain the VPC.VPC element created by the stack. 3. Obtain the ID of the created VPC from the VPC console.

networkMode

No

Container network type

Type: string

Default: overlay_l2

Value Constraint: Currently, overlay_l2, underlay_ipvlan, and vpc-router are supported. If you set it to vpc-router, the selected VPC can contain only one subnet.

Suggestion: Use the default value.

description

No

Cluster description

Type: string

Suggestion: Customize the value.

name

No

Cluster name

Type: string

Value Constraint: Enter 4 to 128 characters, starting with a letter and ending with a letter or digit. Only lowercase letters, digits, and hyphens (-) are allowed. The value must meet regular expression (^$)|(^[a-z]([-a-z0-9]*[a-z0-9])?$).

Suggestion: Customize the value.

kubeProxyMode

No

Service forwarding mode

Type: string

Default: iptables

Value Constraint: Currently, only iptables and ipvs are supported.

Suggestion: You are advised to use the default value iptables for cluster 1.7, and ipvs for cluster 1.9 and later to achieve better performance.

highwaySubnetId

No

High-speed subnet ID

Type: Cloud.VPC.Subnet.Id

Value Constraint: An existing or new subnet ID can be used. To use a new subnet ID, you need to define the subnet object in the template and establish the dependency.

Suggestion: 1. Use the get_input function to set this field, and then the value can be automatically selected on the AOS console. 2. Use the get_reference function to obtain the VPC.Subnet element created by the stack. 3. Obtain the ID of the created subnet from the VPC console.

containerNetworkCIDR

No

Container network segment

Type: string

Default: ""

Value Constraint: Set this parameter based on the live environment. The available network segments are 172.16.0.0/16-172.31.0.0/16, 10.0.0.0/16-10.255.0.0.0/16, and 192.168.0.0/16.

Suggestion: Use the default value.

version

No

Cluster version

Type: string

Value Constraint: Currently, v1.15, v1.13 and v1.11 are supported.

Suggestion: Use the get_input function to set this field, and then the value can be automatically selected on the AOS console.

namespaces

No

Namespace created during cluster creation

Type: string array

Default: []

Value Constraint: array

subnetId

Yes

Subnet ID

Type: Cloud.VPC.Subnet.Id

Value Constraint: An existing or new subnet ID can be used. To use a new subnet ID, you need to define the subnet object in the template and establish the dependency.

Suggestion: 1. Use the get_input function to set this field, and then the value can be automatically selected on the AOS console. 2. Use the get_reference function to obtain the VPC.Subnet element created by the stack. 3. Obtain the ID of the created subnet from the VPC console.

flavor

Yes

Cluster specifications

Type: Cloud.CCE.Cluster.Flavor.Name

Value Constraint: The value must comply with CCE specifications definitions. You can view supported specifications on the CCE console.

Suggestion: You can view the names of the available cluster specifications on the cluster creation page of the CCE console.

type

No

Cluster type

Type: Cloud.CCE.Cluster.Type

Default: VirtualMachine

Value Constraint: Currently, VirtualMachine, BareMetal, Windows, and ARM64 are supported.

Suggestion: Use the default value.

nodes

No

User node configuration during yearly/monthly-billed cluster creation

Type: CCE.NodePool

Default: {u'dataVolumes': [], u'availabilityZone': u'unset', u'instances': 1, u'rootVolume': {u'volumeType': u'unset', u'size': 40}, u'flavor': u'unset', u'sshKeyName': u'unset'}

Value Constraint: The value of this parameter must comply with the description and constraint of Cloud.CCE.NodePool.

Suggestion: Set the value based on the live environment.

availabilityZone

No

AZ. For clusters billed in the yearly/monthly mode, this field is mandatory.

Type: Cloud.ECS.AvailabilityZone.Name

Value Constraint: The value varies depending on regions.

Suggestion: Use the get_input function to set this field, and then the value can be automatically selected on the AOS console.

Relationships Between Elements

Table 2 Relationship description

Description

Target

Connected

VPC.Subnet

Inclusion

VPC.VPC

Return Value

Property

Type

Description

refName

string

Cluster name

refID

string

Cluster ID

Blueprint Example

tosca_definitions_version: cloud_tosca_version_1_0
inputs:
  availabilityZone:
    default: az1.dc1 
  vpcId:
    default: ba6e4347-99d2-4649-b114-85c28d3d71b0
  subnetId:
    default: 3be61f68-9bfc-41bf-8f5e-66c57122f270  
  clusterFlavor:
    default: cce.s1.small
node_templates:
  cluster:
    type: Cloud.CCE.Cluster
    properties:
      availabilityZone: {get_input: availabilityZone}
      vpcId: {get_input: vpcId}
      subnetId: {get_input: subnetId}
      flavor: {get_input: clusterFlavor}
outputs:
  cluster_id:
    value: {get_attribute: [cluster, clusterId]}