Updated on 2023-12-13 GMT+08:00

conditions

The conditions section is optional and defines conditions. By specifying conditions, you can determine whether to create and deploy elements defined in node_templates.

Format of the conditions section:

 <Condition name>:
    <Built-in condition function>
 ...

The following shows how to specify conditions to control the effectiveness of properties in node_templates:

node_templates:
 <Element name>:
    condition: <Condition name>
 ...
Table 1 Parameter property description

Property

Mandatory or Not

Type

Value Constraint

Description

Condition name

Yes

String

The value must be 1 to 64 characters long. Only letters, digits, and hyphens (-) are allowed.

Name of the new condition, which must be unique.

Built-in function

Yes

-

-

Built-in condition functions are used to define conditions. For details, see Condition Function.

Element name

Yes

String

The value must be 1 to 48 characters long. Only lowercase letters, digits, and hyphens (-) are allowed.

Name of the new element, which must be unique.

Condition name

Yes

String

The value must be 1 to 64 characters long. Only letters, digits, and hyphens (-) are allowed.

Condition name defined in conditions.

Example configuration of conditions:

When specifying conditions to determine whether to create and deploy elements, you need to define reference relationships in multiple sections such as inputs, conditions, and node_templates.

tosca_definitions_version: huaweicloud_tosca_version_1_0
conditions:
  condition_vm_deploy:    #The conditions can be met only when inputs parameters are matched. 
    cond_eq:
      - get_input: vm_deploy
      - true
inputs:
  image:
    description: ID of the image used by the Elastic Cloud Server (ECS)
    type: HuaweiCloud.ECS.Image.Id
  instance:
    default: 1
    description: number of ECSs to be created
  subnet:
    description: ID of the subnet to which the ECS belongs
..vm_deploy:    #Determines whether to deploy the VM.
    default: true
    type: boolean
  vpc:
    description: ID of the Virtual Private Cloud (VPC) to which the ECS belongs
node_templates:
  vm:
    condition: condition_vm_deploy     # The VM will be deployed only when the conditions are met.
    type: HuaweiCloud.ECS.CloudServer
    properties:
      availabilityZone: cn-south-1a
      imageId:
        get_input: image
      flavor: s3.small.1
      instances:
        get_input: instance
      name: my-ecs
      nics:
        - subnetId:
            get_input: subnet
      rootVolume:
        size: 40
        volumeType: SATA
      vpcId:
        get_input: vpc
  myecs:
    type: HuaweiCloud.ECS.CloudServer
    properties:
      name: my-ecs
      instances:
        get_input: instance
      imageId:
        get_input: image
      flavor: s3.small.1
      vpcId:
        get_input: vpc
      availabilityZone: cn-south-1a
      nics:
        - subnetId:
            get_input: subnet
      rootVolume:
        volumeType: SSD
        size: 40