创建堆栈
功能介绍
用于创建堆栈。
堆栈的输入由模板和输入参数两部分组成。
- 模板:定义了堆栈的骨架,决定了堆栈内部节点的构造以及节点间的关系,以及每个节点的属性的值或来源。
- 输入参数:是模板内节点属性值的来源之一,定义在模板的inputs字段下,由模板内的get_input函数触发。
URI
POST /v2/stacks
请求消息
- 请求参数
表1 请求参数 参数
是否必选
参数类型
描述
name
是
String
堆栈名称。限制同表2的name字段。
project_id
是
String
堆栈所属项目的id,默认为用户token所属项目,如果填写则必须与用户token内项目信息一致。
长度[1, 63],由小写字母、数字和中划线(-)组成,且不能以中划线开头结尾。
description
否
String
堆栈描述。限制同表2的description字段。
template_id
是
String
堆栈使用的模板id,长度[1, 64]。
inputs_json
否
Object
堆栈使用的模板输入参数。
该参数内每个key-value结构对应inputs下名为key的字段,标明输入值为value。
如果该处未指明某个key,则使用key指定的默认值,如果没有默认值则报错。
示例:"{'template_input_key': 'value'}"
force
否
Boolean
堆栈强制裁剪标识,适用于裁剪场景。
labels
否
Object
堆栈标签,内部每个key-value表示一个标签。key/value两个字段长度均为[1, 64],且满足正则表达式^[a-zA-Z0-9_]+[-.a-zA-Z0-9_]*$。
namespace
否
String
编排CCE资源与应用时需要传入。堆栈部署的命名空间,如果不传入,默认使用default。
cluster_id
否
String
编排CCE资源与应用时需要传入。堆栈所在集群ID。
action_parameters
否
Object
堆栈创建后自动执行安装生命周期的配置。限制同表2。
表2 生命周期配置 参数
是否必选
参数类型
描述
failure_strategy
否
String
失败策略,默认DoNothing。取值范围为DoNothing/Rollback。
auto_create
是
Boolean
默认为true。
timeout
否
Integer
生命周期超时时间,单位为分钟,默认60分钟。取值范围为[0, 1440] (最多一天,24*60)。
inputs_json参数中输入虚机应用对应属性时,如果不在url字段或name字段中填入合法url,则会通过name/version/repository字段访问SWR进行模糊查找。在软件仓库内文件较多的情况下时间效率不高。可行的解决方案是填入url避免模糊查找,或将name/version/repository填写详细,减少查找范围。
- 推荐的做法:url: http://SWR.url/xxx/file.tgz
- 较好的做法:name: file.tgz version: v1 repository: myProject
- 效率较低的做法: name: file.tgz
- 请求示例
{ "name": "aos-lm-verydows-t1", "template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "project_id": "10556c2112784111b8bf10512591189e", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "inputs_json": { "ecsng-image": "192.168.3.88:20202/default/verydows-ecsng:2.1.1", "mysql-image": "192.168.3.88:20202/tangtao/verydows-mysql:5.6.35", "redis-image": "192.168.3.88:20202/default/verydows-redis:4.0.2_passwd", "verydows-image": "192.168.3.88:20202/default/verydows:2.3.1", "verydows-install-image": "192.168.3.88:20202/default/verydows:2.3.1", "mysql-name": "verydows-mysql-t1" } }
响应消息
- 响应参数
- 创建成功时返回堆栈结构。
- 创建失败时返回错误响应结构。
其中,堆栈结构如表3 响应参数所示, 返回错误响应结构如表5所示。
表3 响应参数 参数
参数类型
描述
name
String
堆栈名称
guid
String
堆栈id
description
String
堆栈描述
project_id
String
堆栈所属项目的id
domain_id
String
堆栈所属租户
template_id
String
模板id
template_name
String
模板名称
inputs_json
String
堆栈使用的模板的输入参数
status
String
堆栈状态
create_at
String
堆栈创建时间
update_at
String
堆栈更新时间
force
Boolean
堆栈强制裁剪标识,适用于裁剪场景
labels
String
堆栈的标签
cluster_id
String
堆栈所在集群ID
cluster_name
String
堆栈所在集群名字
namespace
String
堆栈所属命名空间
template_version
String
堆栈使用的模板版本
dsl_version
String
堆栈使用的模板语法版本
- 响应成功示例
{ "force": true, "guid": "d956ea24-e979-11e7-9764-0255ac103504", "namespace": "default", "project_id": "c261c106051448479eb7c66549866011", "cluster_name": "test-not-delete", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "domain_id": "ef09dd6cc93f4653b5557181b802ee71", "name": "aos-lm-verydows-t1", "description": "", "status": "", "template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "previous_template_id": "", "template_name": "verydows", "healthy": true, "healthy_message": "", "inputs_json": "{\"ecsng-container-port\":80,\"ecsng-image\":\"192.168.3.88:20202/default/verydows-ecsng:2.1.1\",\"imagePullPolicy\":\"IfNotPresent\",\"mysql-container-port\":3306,\"mysql-database\":\"verydows\",\"mysql-image\":\"192.168.3.88:20202/tangtao/verydows-mysql:5.6.35\",\"mysql-name\":\"verydows-mysql-t1\",\"mysql-password\":\"******\",\"mysql-port\":13306,\"mysql-root-password\":\"******\",\"mysql-user\":\"verydows\",\"redis-container-port\":6379,\"redis-image\":\"192.168.3.88:20202/default/verydows-redis:4.0.2_passwd\",\"redis-password\":\"******\",\"redis-port\":16379,\"verydows-container-port\":80,\"verydows-http-host\":\"\",\"verydows-image\":\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-install-image\":\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-port\":8088}", "previous_inputs_json": "", "create_at": "", "update_at": "", "labels": "", "template_version": "2.0.1", "dsl_version": "cloud_tosca_version_1_0" }
- 响应失败示例
{ "message": "The request body is invalid, please check. Error: The stack name is already existed.", "code": "02030008", "extend": "" }
状态码
- 正常
表4 状态码 状态码
描述
201
堆栈创建成功
- 异常
表5 状态码 状态码
描述
400
请求参数无效或有不止一个包。
404
模板中定义的包不存在。
500
服务器遇到了一个未曾预料的状况,导致无法完成对请求的处理。