一、表单组件清单
| 组件名称 | 描述 | 预览效果 |
| RegionAndZoneSelect | 地域及可用区选择组件 | |
| PostgreSQLZoneSelect | PostgreSQL 售卖可用区选择组件 | |
| SubnetSelect | 私有网络及子网选择组件 | |
| SecurityGroupSelect | 安全组选择组件 | |
| CosBucketSelect | 对象存储桶选择组件 | |
| CvmInstanceTypeSelect | CVM 机型选择组件 | |
| DiskSelect | 云硬盘选择组件 | |
| ImageSelect | CVM 镜像选择组件 | |
| PrivateDNSDomainSelect | 私有域名解析选择组件 | |
| CertificateSelect | SSL 证书选择组件,只支持选择公有云证书 | |
| SSHKeyPairsSelect | SSH 密钥对选择组件 | |
| IPCidrInput | CIDR 输入框组件 | |
| DomainInput | 域名输入组件,如果传入 SSL 证书,则限制必须输入和 SSL 证书匹配的域名 | |
| CamRolePolicyAttach | 角色绑定权限策略组件,安装应用时如果需要为角色绑定策略,可以使用此组件 | |
| Switch | 开关组件,用于切换两种状态 | |
| Check | 选择框组件 | |
| Secret | 密码或者敏感信息输入组件 | |
| SecretTextarea | 密码或者敏感信息多行输入组件 | |
| Select | 下拉选择组件 | |
| InputNumber | 数字输入组件 | |
| InputTextarea | 多行输入组件 | |
| Input | 输入框组件,不建议直接使用 input 组件,可以优先使用上述资源和通用组件 | |
四、描述
地域及可用区选择组件。
五、示例
预览效果
六、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "region-and-zone-select" | 地域及可用区 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| regions | 否 | string[] | 支持的地域,['ap-guangzhou']。 |
| multiple | 否 | boolean | 是否开启多选模式。开启后输出对象数组,并自动生成一组拍平的同级变量(详见下方 多选模式 说明)。 |
| excludeZones | 否 | string[] | 需要排除的可用区列表,被排除的可用区不会出现在下拉选项中。可传递表达式,如 ['${app_target.subnet.zone}']。典型场景:Redis 副本可用区不能与主可用区重复。 |
| excludeRegions | 否 | string[] | 需要排除的地域列表,被排除的地域不会出现在下拉选项中。 |
七、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| region | 是 | string | 地域,ap-guangzhou。 |
| zone | 是 | string | 可用区,ap-guangzhou-3。 |
| region_id | 是 | string | 地域 ID,如 "1"。 |
| zone_id | 是 | string | 可用区 ID,如 "100003"。 |
八、多选模式
当 multiple: true 时,组件输出对象数组,同时自动生成一组拍平的同级变量(命名规则 ${name}__xxx),可在 Terraform 中直接引用,无需 for 表达式拆解。
示例:
# <package.yaml>args: – name: app_target widget: subnet-select label: 安装网络 – name: replica_zones widget: region-and-zone-select label: 副本可用区 multiple: true optional: true regions: – ${app_target.region} excludeZones: – ${app_target.subnet.zone}
拍平变量说明(name 为组件变量名):
| 变量名 | 是否必填 | 值类型 | 说明 |
| ${name}__zone_id_list | 是 | number[] | 可用区 ID 数字列表,如 [100003, 100005]。可直接用于 replica_zone_ids 等需要数字类型的字段。 |
| ${name}__region_id_list | 是 | number[] | 地域 ID 数字列表,如 [1, 4]。 |
| ${name}__zone_ids | 是 | string | 可用区 ID 逗号拼接字符串,如 "100003,100005"。 |
| ${name}__region_ids | 是 | string | 地域 ID 逗号拼接字符串,如 "1,4"。 |
| ${name}__zones | 是 | string | 可用区名逗号拼接字符串,如 "ap-guangzhou-3,ap-guangzhou-5"。 |
| ${name}__regions | 是 | string | 地域名逗号拼接字符串,如 "ap-guangzhou,ap-beijing"。 |
| ${name}__zone_list | 是 | string[] | 可用区名列表,如 ["ap-guangzhou-3", "ap-guangzhou-5"]。 |
| ${name}__region_list | 是 | string[] | 地域名列表,如 ["ap-guangzhou", "ap-beijing"]。 |
十、描述
PostgreSQL 售卖可用区选择组件,支持主可用区与备可用区联动选择。
组件数据来源为云数据库 PostgreSQL 的 DescribeZones 接口,仅展示 PostgreSQL 实际售卖的可用区。
注意:RegionAndZoneSelect 的可用区数据来自云服务器(CVM)售卖可用区,与 PostgreSQL 实际售卖的可用区并不一致。创建 PostgreSQL 实例时请使用本组件,避免用户选到 PostgreSQL 不支持的可用区,导致安装失败。
十一、示例
# <package.yaml>args: – name: app_target label: 目标网络 widget: subnet-select # 主可用区 – name: db_primary_zone label: 主可用区 widget: postgres-zone-select mode: primary region: ${app_target.region} description: PostgreSQL 主节点所在可用区 # 备可用区,按主可用区支持的备可用区联动过滤 – name: db_standby_zone label: 备可用区 widget: postgres-zone-select mode: standby region: ${app_target.region} primaryZone: ${db_primary_zone.zone} description: PostgreSQL 备节点所在可用区
在 Terraform 中通过变量获取所选可用区:
resource "tencentcloud_postgresql_instance" "postgresql" { availability_zone = var.db_primary_zone.zone vpc_id = var.app_target.vpc.id subnet_id = var.app_target.subnet.id db_node_set { role = "Primary" zone = var.db_primary_zone.zone } db_node_set { role = "Standby" zone = var.db_standby_zone.zone }}
预览效果:
十二、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "postgres-zone-select" | PostgreSQL 售卖可用区选择组件。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| region | 是 | string | 地域,通常联动网络组件,如 ${app_target.region}。 |
| mode | 否 | "primary" | "standby" | 可用区类型,primary 为主可用区,standby 为备可用区,默认 primary。 |
| primaryZone | 否 | string | 已选中的主可用区,mode 为 standby 时必填,如 ${db_primary_zone.zone}。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
注意:说明:
注意:mode 为 standby 时,组件会读取主可用区的 StandbyZoneSet,仅展示该主可用区支持搭配的备可用区;未选择主可用区前,该表单项不可用。
十三、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| region | 是 | string | 地域,ap-guangzhou。 |
| zone | 是 | string | 可用区,ap-guangzhou-5。 |
| zone_id | 是 | number | 可用区 ID,100005。 |
| zone_name | 是 | string | 可用区名称,广州五区。 |
十五、描述
私有网络及子网选择组件。
十六、示例
# <package.yaml>args: – name: subnet widget: subnet-select label: 安装网络 regions: – ap-guangzhou – ap-beijing – ap-shanghai – ap-chongqing
预览效果
十七、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "subnet-select" | 子网 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| supportedRegionIds | 是 | string[] | number[] | 支持的地域 ID。 |
| regions | 否 | string[] | 支持的地域,['ap-guangzhou']。 |
十八、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| region | 是 | string | 地域标识,如 ap-guangzhou。 |
| region_id | 是 | string | 地域 ID,如 1。 |
| vpc | 是 | { id: string; cidr_block: string; } | VPC 信息。 |
| subnet | 是 | { id: string; zone: string; zone_id: string; } | 子网信息。 |
20、描述
安全组选择组件。
21、示例
# <package.yaml>args: – name: subnet widget: subnet-select label: 安装网络 regions: – ap-guangzhou – ap-beijing – ap-shanghai – ap-chongqing – name: app_sg label: 安全组 widget: security-group-select regions: – ${subnet.region}
预览效果
22、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "security-group-select" | 安全组 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| supportedRegionIds | 是 | string[] | number[] | 支持的地域 ID。 |
| regions | 否 | string[] | 支持的地域,['ap-guangzhou']。 |
| region | 否 | string | 指定地域,如 ap-guangzhou。 |
23、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| region | 是 | string | 地域标识,如 ap-guangzhou。 |
| region_id | 是 | string | 地域 ID,如 1。 |
| security_group | 是 | { id: string; } | 安全组信息。 |
25、描述
对象存储桶选择组件。
26、示例
# <package.yaml>args: – name: app_cos widget: cos-bucket-select label: 对象存储 optional: true description: 可以前往 COS 控制台进行设置
预览效果
27、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "cos-bucket-select" | COS 桶 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
28、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| region | 是 | string | 地域标识,如 ap-guangzhou。 |
| region_id | 是 | string | 地域 ID,如 1。 |
| bucket | 是 | string | COS 桶。 |
| bucket_name | 是 | string | COS 桶 name 部分。 |
| app_id | 是 | string | COS 桶 AppId 部分。 |
30、描述
CVM 机型选择组件。
31、示例
# <package.yaml>args: – name: subnet widget: subnet-select label: 目标网络 regions: – ap-guangzhou – ap-beijing – ap-shanghai – ap-chongqing – name: cvm_type label: CVM 机型 widget: cvm-instance-type-select zone: ${subnet.subnet.zone} region: ${subnet.region} cpu: [4, 16] memory: [8, 32]
预览效果
32、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "cvm-instance-type-select" | CVM 机型 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| region | 是 | string | 地域。 |
| zone | 是 | string | 可用区。 |
| chargeType | 是 | "PREPAID" | "POSTPAID_BY_HOUR" | 付费类型。 |
| cpu | 否 | number | [number, number] | CPU 核数,可指定 [min, max]。 |
| memory | 否 | number | [number, number] | 内存,可指定 [min, max]。 |
| incompleteTips | 否 | string | 未补全地域信息时的提示内容。 |
| gpuOnly | 否 | boolean | 是否仅显示 GPU 机型。 |
| instanceTypes | 否 | string[] | 可用机型类型列表。 |
| instanceFamilies | 否 | string[] | 可用实例机型系列列表,实例机型系列形如:S1、I1、M1等。 |
33、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| region | 是 | string | 地域标识,如 ap-guangzhou。 |
| region_id | 是 | string | 地域 ID,如 1。 |
| zone | 是 | string | 可用区。 |
| instance_type | 是 | string | 机型。 |
35、描述
云硬盘选择组件。
36、示例
# <package.yaml>args: – name: cvm_system_disk label: 云硬盘 widget: disk-select usage: system cvmConfig: ${cvm_type}
预览效果
37、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "disk-select" | 云硬盘 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| cvmConfig | 是 | CVM 机型选择结果 | CVM 配置。 |
| usage | 否 | "system" | "data" | 云盘类型,默认系统盘。 |
| minDiskSize | 否 | number | 最小磁盘大小,单位 GB。 |
38、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| disk_type | 是 | string | 磁盘类型。 |
| disk_size | 是 | string | 磁盘大小,单位 GB。 |
40、描述
CVM 镜像选择组件。
41、示例
# <package.yaml>args: – name: app_target label: 目标网络 widget: subnet-select – name: cvm_type label: 云服务器类型 widget: cvm-instance-type-select region: ${app_target.region} zone: ${app_target.subnet.zone} – name: app_cvm_image label: cvm 镜像 widget: image-select region: ${app_target.region} instanceType: ${cvm_type.instance_type} incompleteTips: 请先选择 cvm 机型
预览效果
42、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "image-select" | 镜像 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| region | 是 | string | 地域。 |
| instanceType | 是 | string | 机型。 |
| incompleteTips | 否 | string | 未补全地域及机型信息时的提示内容。 |
| platforms | 否 | string[] | 镜像来源平台。 |
| imageIds | 否 | string[] | 可用镜像 ID 列表。 |
43、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| image_id | 是 | string | 镜像 ID。 |
45、描述
私有域名解析选择组件。
46、示例
# <package.yaml>args: – name: app_target label: 目标网络 widget: subnet-select – name: app_privatedns_domain label: 域名解析 widget: privatedns-domain-select description: 私有域解析域名,配置后将通过此域名来提供私有网络环境的服务访问 relatedVpcId: ${app_target.vpc.id} validator: – reg: str: ${app_privatedns_domain.privatedns_sub_domain} exp: "^[a-zA-Z0-9]+(?:[a-zA-Z0-9-]*[a-zA-Z0-9]+)*(?:\\\\.[a-zA-Z0-9]+(?:[a-zA-Z0-9-]*[a-zA-Z0-9]+)*)*$|^[@]{1}$" message: 域名配置不符合规范
预览效果
47、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "privatedns-domain-select" | PrivateDNS 域名 选择组件。 |
| defaultValue | 是 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| relatedVpcId | 是 | string | 需要关联的 VPC ID。 |
48、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| privatedns_zone_id | 是 | string | 私有域 ID,如 zone-xxxxxxxx。 |
| privatedns_sub_domain | 是 | string | 子域名。 |
| privatedns_domain | 是 | string | 私有域名。 |
50、描述
SSL 证书选择组件,只支持选择公有云证书。
51、示例
# <package.yaml>args: – name: ssl_certificate label: SSL证书 widget: certificate-select
预览效果
52、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "certificate-select" | 证书选择 组件。 |
| defaultValue | 否 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
53、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| cert_id | 是 | string | 证书 ID。 |
55、描述
SSH 密钥对选择组件。
56、示例
# <package.yaml>args: – name: ssh_ak label: ssh 密钥 widget: ssh-key-pairs-select
预览效果
57、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "ssh-key-pairs-select" | SSH 密钥对 选择组件。 |
| defaultValue | 否 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| multiple | 否 | boolean | 是否多选,默认 false。 |
58、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| key_ids | 是 | string | 密钥对 ID 列表,单选时列表中仅有一个 ID,多选时列表中有多个 ID。 |
60、描述
CIDR 输入框组件。
61、示例
# <package.yaml>args: – name: app_target label: 目标网络 widget: subnet-select – name: cluster_cidr label: 容器网络 CIDR widget: ip-cidr-input description: 创建后不能修改,请做好网络规划,并确保安全组规则放通子网内容器网络和其他资源 region: ${app_target.region} vpcId: ${app_target.vpc.id} cidrType: service
预览效果
62、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "ip-cidr-input" | CIDR 输入框 组件。 |
| defaultValue | 否 | string | 默认值。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| region | 是 | `ap-${string}` | 地域。 |
| vpcId | 是 | string | 需要检测网段冲突的 VPC。 |
| cidrType | 否 | "cluster" | "service" | 欲校验的 CIDR 的类型。 |
| allowIgnoreCidrConflict | 否 | boolean | 是否允许忽略某些 CIDR 冲突。 |
63、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| ip | 是 | string | IP 地址,比如 192.168.0.0/22, IP 地址就是 192.168.0.0。 |
| cidr_prefix | 是 | string | CIDR 的前缀,比如 192.168.0.0/22, cidr_prefix 就是 22。 |
| ignore_cluster_cidr_conflict | 是 | boolean | 是否忽略 Cluster CIDR 冲突。 |
| ignore_service_cidr_conflict | 是 | boolean | 是否忽略 Service CIDR 冲突错误(仅在 VPC-CNI 模式生效)。 |
65、描述
域名输入组件,如果传入 SSL 证书,则限制必须输入和 SSL 证书匹配的域名。
66、示例
# <package.yaml>args: – name: app_certification label: SSL 证书 widget: certificate-select optional: true – name: app_domain label: 域名 widget: domain-input optional: true certId: ${app_certification.certId}
预览效果
67、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "domain-input" | 域名输入 组件。 |
| defaultValue | 否 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| certId | 是 | string | SSL 证书 ID。 |
68、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| domain | 是 | string | 输入的域名。 |
70、描述
角色绑定权限策略组件,安装应用时如果需要为角色绑定策略,可以使用此组件。
71、示例
# <package.yaml># 为 TKE_QCSRole 角色绑定 QcloudAccessForTKERoleInCreatingCFSStorageclass 策略,用于安装容器集群的 cfs 组件args: – name: app_role_policy label: CAM 角色权限 widget: cam-role-policy-attach roles: – roleName: TKE_QCSRole principalService: 'ccs.qcloud.com' policy: – QcloudAccessForTKERoleInCreatingCFSStorageclass description: 安装当前应用需要为角色授权
预览效果
72、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "cam-role-policy-attach" | 角色绑定权限策略 组件。 |
| defaultValue | 否 | undefined | 默认值,不可用。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| roles | 是 | CamRolePolicy[] | 需要绑定策略的角色列表。类型详见:CamRolePolicy |
73、输出
结果值
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| roles | 是 | { roleName: string; principalService: string; policy: { policyName: string; attached?: boolean; }[]; }[] | 绑定之后的角色列表。 |
75、描述
开关组件,用于切换两种状态。
76、示例
# <package.yaml># 设置是否自动续费args: – name: charge_type label: 计费类型 description: 云资源购买使用付费方式 widget: select defaultValue: PREPAID options: – label: 包年包月 value: PREPAID – label: 按量计费 value: POSTPAID – name: charge_perpaid_auto_renew label: 自动续费 widget: switch defaultValue: false when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月
预览效果
77、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "switch" | 开关 组件。 |
| defaultValue | 否 | boolean | 默认值 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
78、输出
结果值
类型:boolean
80、描述
选择框组件。
81、示例
# <package.yaml># 设置是否同意用户协议args: – name: charge_type label: 计费类型 description: 云资源购买使用付费方式 widget: select defaultValue: PREPAID options: – label: 包年包月 value: PREPAID – label: 按量计费 value: POSTPAID – name: charge_perpaid_auto_renew label: 自动续费 widget: switch defaultValue: false when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月 – name: accept_info label: 用户协议 widget: check text: 我已同意用户协议 defaultValue: false
预览效果
82、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "check" | 选框 组件。 |
| defaultValue | 否 | boolean | 默认值。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| text | 否 | string | 选框描述文字。 |
83、输出
结果值
类型:boolean
85、描述
密码或者敏感信息输入组件。
86、示例
# <package.yaml>args: – name: app_cos_secret_id label: COS 密钥 ID defaultValue: "cos_id" widget: input – name: app_cos_secret_key label: COS 密钥 Key defaultValue: "cos_key" widget: secret
预览效果
87、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "secret" | 加密输入框 组件。 |
| defaultValue | 否 | string | 默认值。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
88、输出
结果值
类型:string
90、描述
密码或者敏感信息多行输入组件。
91、示例
# <package.yaml>args: – name: app_cos_secret_id label: COS 密钥 ID defaultValue: "cos_id" widget: input – name: app_cos_secret_key label: COS 密钥 Key defaultValue: "cos_key" widget: secret – name: web_private_token label: token 信息 widget: secret-textarea
预览效果
92、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "secret-textarea" | 多行加密输入框 组件。 |
| defaultValue | 否 | string | 默认值。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
93、输出
结果值
类型:string
95、描述
下拉选择组件。
96、示例
# <package.yaml>args: – name: charge_type label: 计费类型 description: 云资源购买使用付费方式 widget: select defaultValue: PREPAID options: – label: 包年包月 value: PREPAID – label: 按量计费 value: POSTPAID – name: charge_perpaid_period label: 购买时长 widget: input-number defaultValue: 1 description: 云资源包年包月购买的月份数 when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月
预览效果
97、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "select" | 下拉选择 组件。 |
| defaultValue | 否 | any | 默认值。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| options | 是 | { label: string; value: any; }[] | 下拉选项组。 |
98、输出
结果值:-
100、描述
数字输入组件。
101、示例
# <package.yaml>args: – name: charge_type label: 计费类型 description: 云资源购买使用付费方式 widget: select defaultValue: PREPAID options: – label: 包年包月 value: PREPAID – label: 按量计费 value: POSTPAID – name: charge_perpaid_auto_renew label: 自动续费 widget: switch defaultValue: false when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月 – name: charge_perpaid_period label: 购买时长 widget: input-number defaultValue: 1 description: 云资源包年包月购买的月份数 when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月 optional: true
预览效果
102、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "input-number" | 数字输入框 组件。 |
| defaultValue | 否 | number | 默认值 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
| max | 否 | number | 可输入的最大数字。 |
| min | 否 | number | 可输入的最小数字。 |
| step | 否 | number | 使用按钮增减时的步长。 |
103、输出
结果值
类型:number
105、描述
多行输入组件。
106、示例
# <package.yaml>args: – name: charge_type label: 计费类型 description: 云资源购买使用付费方式 widget: select defaultValue: PREPAID options: – label: 包年包月 value: PREPAID – label: 按量计费 value: POSTPAID – name: charge_perpaid_auto_renew label: 自动续费 widget: switch defaultValue: false when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月 – name: app-description label: 描述信息 widget: input-textarea defaultValue: 描述
预览效果
107、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "input-textarea" | 多行输入框 组件。 |
| defaultValue | 否 | string | 默认值 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
108、输出
结果值
类型:string
110、描述
输入框组件,不建议直接使用 input 组件,可以优先使用上述资源和通用组件。
111、示例
# <package.yaml># 设置是否自动续费args: – name: charge_type label: 计费类型 description: 云资源购买使用付费方式 widget: select defaultValue: PREPAID options: – label: 包年包月 value: PREPAID – label: 按量计费 value: POSTPAID – name: charge_perpaid_auto_renew label: 自动续费 widget: switch defaultValue: false when: – eq: a: ${charge_type} b: "PREPAID" # 包年包月 – name: app_nacos_host label: nacos 地址 widget: input optional: true defaultValue: "172.16.0.2:8848" description: 请提前创建 nacos 配置中心
预览效果
112、属性
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| widget | 是 | "input" | 输入框 组件。 |
| defaultValue | 否 | string | 默认值。 |
| name | 是 | string | 表单项变量名,用于在 Terraform 中获取变量。 |
| label | 是 | string | 表单项名。 |
| description | 否 | string | 表单项描述。 |
| optional | 否 | boolean | 表单项是否可选。 |
| when | 否 | PackageArgOp[] | 表单项是否出现,可传递表达式。类型详见:PackageArgOp |
| hidden | 否 | PackageArgOp[] | 表单项是否隐藏,可传递表达式。类型详见:PackageArgOp |
| validator | 否 | PackageArgValidator[] | 表单项值校验器。类型详见:PackageArgValidator |
113、输出
结果值
类型:string
114、公共类型 PackageArgOp
枚举值:
·{ eq: { a: any; b: any; }; }
·{ ne: { a: any; b: any; }; }
·{ reg: { str: any; exp: string; }; }
·{ gt: { a: any; b: any; }; }
·{ gte: { a: any; b: any; }; }
·{ lt: { a: any; b: any; }; }
·{ lte: { a: any; b: any; }; }
·{ and: PackageArgOp[]; }
·{ or: PackageArgOp[]; }
·{ notIncludes: { arr: any; value: any; }; }
notIncludes 用于校验数组不包含某值,适用于多选组件的校验场景。空数组 / null / undefined 均视为校验通过,天然支持 optional 可选项。比较时统一转成字符串,避免类型陷阱。
示例:
validator: – notIncludes: arr: ${replica_zones__zone_list} value: ${app_target.subnet.zone} message: 副本可用区不能与主可用区相同
115、公共类型 PackageArgValidator
枚举值:
·{ eq: { a: any; b: any; }; } & { message: string; }
·{ ne: { a: any; b: any; }; } & { message: string; }
·{ reg: { str: any; exp: string; }; } & { message: string; }
·{ gt: { a: any; b: any; }; } & { message: string; }
·{ gte: { a: any; b: any; }; } & { message: string; }
·{ lt: { a: any; b: any; }; } & { message: string; }
·{ lte: { a: any; b: any; }; } & { message: string; }
·{ and: PackageArgOp[]; } & { message: string; }
·{ or: PackageArgOp[]; } & { message: string; }
·{ notIncludes: { arr: any; value: any; }; } & { message: string; }
116、公共类型 CamRolePolicy
| 属性名称 | 是否必填 | 值类型 | 属性描述 |
| roleName | 是 | string | 角色名。 |
| policy | 是 | string[] | 预设策略名列表。 |
| principalService | 是 | string | 角色载体。 |