本方案提供的Demo样例,深度集成了CADT 模板的能力。本文档将介绍如何制作模板,以及如何设定模板中的一些变量。
复制CADT模板
1、登录CADT官方模板库
2、进入“API对接官方模板”板块,找到“云管Demo模板*”,将这些模板另存为私有模板。
右键单击目标模板卡片,在弹出菜单中选择另存为私有模板。
修改模板
1、进入上述复制后的私有模板列表,点击编辑模板,进入模板的可视化编辑页面。
2、首先模板的左上角有地域属性,一个模板可以设定多个可用的地域。
单击地域下拉框可切换已设定的地域(如默认、北京、杭州、上海),各非默认地域右侧提供删除图标以移除对应地域配置。
3、双击其中一个图标,在右侧的属性栏中,标记为fx的属性,即是可以定义变量的属性。
示例中双击画布上的NLB组件后,右侧属性栏显示其配置项,其中实例名称(值为 ${nlb_name})字段右侧带有 fx 按钮,表示该属性可定义为模板变量。
4、点击fx按钮,可以查看模板变量的具体定义。其中可选值部分是允许自由定义内容。本方案提供的集成Demo提供了一套基于JSON数据定义前端UI样式的方案。 具体规则参见下文。
弹出的变量定义对话框包含四个字段:变量名称(如 ${nlb_name})、占位符(不填写时默认使用变量名称)、默认值(如 nlb)、可选值(填写 JSON 格式定义,如 {"title":"NLB实例名称", "control_type":"Input", "data":[]})。填写完成后单击添加变量保存。
部分变量支持自动获取可选值范围,例如ECS的实例规格属性,点击边上的fx按钮后,在弹框的变量定义页面中的默认值上,会提供该变量可填的值。
变量编辑弹窗中,默认值可不填写,填写后将作为缺省值填充;二级属性值暂不支持配置默认值。
5、保存模板,模板保存后可以修改名称,并设定地域。
弹窗中还可勾选设为默认模板。设定地域标签时需保证所选区域与图上区域保持一致。是否更改图上Region仅在图上区域(Region)节点为一个时才会生效。
6、若希望模板支持更多的地域,可以勾选“是否复制变量”,设定源地域,在地域标签中设定目标地域。并勾选“是否更改图上Region”。即可完成复制。
需注意:勾选是否更改图上Region仅在图上的区域(Region)节点为一个时才会生效;设定地域标签时需保证所选区域与图上区域保持一致。
Options可选值设定规则
模板中,产品属性的可选值,在此Demo场景下,按照以下规则来动态改变前端的UI显示样式
以NLB实例名称为例,在自定义变量对话框中,设置变量名称为 ${nlb_name},占位符为 ${nlb_name},默认值为 nlb,可选值为 {"title":"NLB实例名称", "control_type":"Input", "data":[]}。其中可选值通过 JSON 格式定义前端 UI 显示样式,control_type 设为 Input 表示使用输入框控件。设置完成后单击添加变量。
title
前端展示此字段的label值,如下方示例所示。
例如实例名称、Redis版本、分片规格、分片数量等字段标签即为模板中各变量在前端显示的名称。
config_type
此变量参数在前端展示的区域。 默认在资源配置板块,若指定为 network,则放在网络配置中。
"config_type": "network",
例如,备可用区参数即展示在网络配置区域中。
control_type
节点的控件类型 Select 下拉单选, Number:数字, Input:文本输入, TextArea:文本输入
"control_type": "Select",
data
可选值,当control_type为 Select时,下拉值的可选范围
"data": [{"label":"北京 可用区H","value":"cn-beijing-h"},{"label":"北京 可用区 L","value":"cn-beijing-l"},{"label":"北京 可用区I","value":"cn-beijing-i"},{"label":"北京 可用区F","value":"cn-beijing-f"},{"label":"北京 可用区G","value":"cn-beijing-g"},{"label":"北京 可用区J","value":"cn-beijing-j"},{"label":"北京 可用区K","value":"cn-beijing-k"}]
}
node_name
此字段只针对给VPC,Vswitch, Security_group 这三个组件,当给他们定义了一个“跳过部署”的变量后。即在vpc属性的右上角,点击fx。
node_name代表了这些控件在模板中定义的名称,例如vpc名称。
点击 fx 后弹出请输入 是否跳过部署 自定义变量弹窗,设置变量名称为 ${vpc},占位符为 ${vpc},默认值为 false,可选值为 {"title":"选择VPC","node_name":"vpc","node_type":"vpc","control_type":"Select"},其中 node_name 即为该控件在模板中定义的名称。设置完成后单击添加变量。
node_type
此字段只针对给VPC,Vswitch, Security_group 这三个组件,当给它们定义了一个“跳过部署”的变量后。即在vpc属性的右上角,点击fx。
node_type代表了这些产品的产品code。本方案提供的集成Demo目前仅支持 vpc,vswitch,security_group.
parent_node
此字段只针对给 Vswitch, Security_group 这两个组件,当给它们定义了一个“跳过部署”的变量后。即在vpc属性的右上角,点击fx。
parent_node 只定义vswitch,security_group所属的vpc 的变量名称。
在自定义变量配置弹窗中,可选值字段的 JSON 中通过 "parentNodeName":"${vpc}" 指定当前 vswitch 变量的父级 vpc 变量名称,从而实现父子级联选择。