解析发布单模板包
功能介绍
此API用来解析发布单模板包。
URI
POST /v3/{project_id}/pipeline/pipelines/parse-template-package
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
租户项目ID。获取方法,请参考获取项目ID。 |
请求消息
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Content-Type |
是 |
String |
消息体的类型(格式),默认取值为“application/json;charset=utf8”。 |
|
X-Auth-Token |
是 |
String |
调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考认证鉴权。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
sources |
是 |
Array of objects |
组件模板包来源,请参考表4。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
input_values |
否 |
Map<String, String> |
模板包输入信息。 |
|
template_source |
是 |
Object |
组件模板包来源,请参考表5。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
storage |
是 |
String |
组件模板包存储方式。
|
|
url |
是 |
String |
组件模板包地址。 组件模板包存储方式为自定义文件地址时有效。 |
|
http_username |
否 |
String |
用户名。 组件模板包存储方式为自定义文件地址且安全认证方式为用户名密码认证时有效。 |
|
http_password |
否 |
String |
密码。 组件模板包存储方式为自定义文件地址且安全认证方式为用户名密码认证时有效。 |
|
http_headers |
否 |
Array of objects |
请求头,请参考表6。 组件模板包存储方式为自定义文件地址且安全认证方式为自定义Header认证时有效。 |
响应消息
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
template_contents |
Array of objects |
模板包解析内容。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
template |
Map<String, String> |
模板包文件信息。 |
|
variables |
Map<String, Object> |
模板包变量声明信息。
|
|
input_values |
Map<String, String> |
模板包输入信息。 |
|
package_name |
String |
包名。 |
请求示例
解析存储在OBS桶obs://apitest/路径下的demo-app-package.zip发布单模板包。
{
"sources": [
{
"template_source": {
"storage": "obs",
"url": "obs://apitest/demo-app-package.zip",
"http_username": "",
"http_password": ""
},
"input_values": {}
}
]
}
响应示例
{
"template_contents": [
{
"template": {
"comp1/spec.yaml": "model_version: v1.0.0\n\ncomponent:\n component_dir: comp_demo/\n\nk8s_resources:\n order_type: CUSTOM\n custom_orders:\n - ServiceAccount\n - Role\n - RoleBinding\n - ConfigMap\n - Secret\n - Deployment\n - HorizontalPodAutoscaler\n - Service\n - Ingress",
"comp2/variables.yaml": "variable:\n namespace:\n type: string\n default: demo\n description: 命名空间\n dep_name:\n type: string\n default: demo-dep\n description: 工作负载的名字\n svc_port:\n type: integer\n default: 8080\n description: 服务的端口号\n value:\n type: string\n default: World\n description: Hello接口响应数据\n cce_resource:\n type: cce\n description: CCE资源\n image:\n type: string\n description: 工作负载镜像",
"values.yaml": "namespace: demo\ndep_name: demo-dep\nsvc_port: 8080\nvalue: World\nimage: swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"comp3/comp_demo/ss-component.yaml": "kind: ServiceStageComponent\nspec:\n name: zyh-component-3\n environment_name: default/env-ayl\n refer_resources:\n - type: cce\n id: c90a1197-c26c-11ef-8078-0255ac10009a",
"comp2/comp_demo/deployment.yaml": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: zyh-test-dep-2\n namespace: default\nspec:\n selector:\n matchLabels: {}\n template:\n metadata:\n labels: {}\n spec:\n containers:\n - name: container-1\n image: swr.cn-north-4.myhuaweicloud.com/ss/test3:v1\n imagePullPolicy: IfNotPresent\n resources:\n requests:\n cpu: 100m\n memory: 256Mi\n limits:\n cpu: 100m\n memory: 256Mi\n imagePullSecrets:\n - name: default-secret\n terminationGracePeriodSeconds: 30\n dnsPolicy: ClusterFirst\n replicas: 2\n revisionHistoryLimit: 10\n strategy:\n type: RollingUpdate\n rollingUpdate:\n maxUnavailable: 25%\n maxSurge: 25%\n progressDeadlineSeconds: 600\n",
"comp1/comp_demo/ss-component.yaml": "kind: ServiceStageComponent\nspec:\n name: zyh-component-1\n environment_name: default/env-ayl\n refer_resources:\n - type: cce\n id: c90a1197-c26c-11ef-8078-0255ac10009a",
"comp1/variables.yaml": "variable:\n namespace:\n type: string\n default: demo\n description: 命名空间\n dep_name:\n type: string\n default: demo-dep\n description: 工作负载的名字\n svc_port:\n type: integer\n default: 8080\n description: 服务的端口号\n value:\n type: string\n default: World\n description: Hello接口响应数据\n cce_resource:\n type: cce\n description: CCE资源\n image:\n type: string\n description: 工作负载镜像",
"comp1/comp_demo/deployment.yaml": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: zyh-test-dep-1\n namespace: default\nspec:\n selector:\n matchLabels: {}\n template:\n metadata:\n labels: {}\n spec:\n containers:\n - name: container-1\n image: swr.cn-north-4.myhuaweicloud.com/ss/test3:v1\n imagePullPolicy: IfNotPresent\n resources:\n requests:\n cpu: 100m\n memory: 256Mi\n limits:\n cpu: 100m\n memory: 256Mi\n imagePullSecrets:\n - name: default-secret\n terminationGracePeriodSeconds: 30\n dnsPolicy: ClusterFirst\n replicas: 2\n revisionHistoryLimit: 10\n strategy:\n type: RollingUpdate\n rollingUpdate:\n maxUnavailable: 25%\n maxSurge: 25%\n progressDeadlineSeconds: 600\n",
"comp2/values.yaml": "namespace: demo\ndep_name: demo-dep\nsvc_port: 8080\nvalue: World\nimage: swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"comp3/spec.yaml": "model_version: v1.0.0\n\ndependency:\n - component_name: zyh-component-2\n application_name: default/test-application-zyh\n - component_name: zyh-component-1\n application_name: default/test-application-zyh\n\ncomponent:\n component_dir: comp_demo/\n\nk8s_resources:\n order_type: CUSTOM\n custom_orders:\n - ServiceAccount\n - Role\n - RoleBinding\n - ConfigMap\n - Secret\n - Deployment\n - HorizontalPodAutoscaler\n - Service\n - Ingress",
"comp1/values.yaml": "namespace: demo\ndep_name: demo-dep\nsvc_port: 8080\nvalue: World\nimage: swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"comp3/variables.yaml": "variable:\n namespace:\n type: string\n default: demo\n description: 命名空间\n dep_name:\n type: string\n default: demo-dep\n description: 工作负载的名字\n svc_port:\n type: integer\n default: 8080\n description: 服务的端口号\n value:\n type: string\n default: World\n description: Hello接口响应数据\n cce_resource:\n type: cce\n description: CCE资源\n image:\n type: string\n description: 工作负载镜像",
"comp2/spec.yaml": "model_version: v1.0.0\n\ncomponent:\n component_dir: comp_demo/\n\nk8s_resources:\n order_type: CUSTOM\n custom_orders:\n - ServiceAccount\n - Role\n - RoleBinding\n - ConfigMap\n - Secret\n - Deployment\n - HorizontalPodAutoscaler\n - Service\n - Ingress",
"variables.yaml": "variable:\n namespace:\n type: string\n default: demo\n description: 命名空间\n dep_name:\n type: string\n default: demo-dep\n description: 工作负载的名字\n svc_port:\n type: integer\n default: 8080\n description: 服务的端口号\n value:\n type: string\n default: World\n description: Hello接口响应数据\n cce_resource:\n type: cce\n description: CCE资源\n image:\n type: string\n description: 工作负载镜像",
"spec.yaml": "model_version: v1.0.0\n\nmodel_type: Application",
"comp3/comp_demo/deployment.yaml": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: zyh-test-dep-3\n namespace: default\nspec:\n selector:\n matchLabels: {}\n template:\n metadata:\n labels: {}\n spec:\n containers:\n - name: container-1\n image: swr.cn-north-4.myhuaweicloud.com/ss/test3:v1\n imagePullPolicy: IfNotPresent\n resources:\n requests:\n cpu: 100m\n memory: 256Mi\n limits:\n cpu: 100m\n memory: 256Mi\n imagePullSecrets:\n - name: default-secret\n terminationGracePeriodSeconds: 30\n dnsPolicy: ClusterFirst\n replicas: 2\n revisionHistoryLimit: 10\n strategy:\n type: RollingUpdate\n rollingUpdate:\n maxUnavailable: 25%\n maxSurge: 25%\n progressDeadlineSeconds: 600\n",
"comp3/values.yaml": "namespace: demo\ndep_name: demo-dep\nsvc_port: 8080\nvalue: World\nimage: swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"application.yaml": "kind: ServiceStageApplication\nspec:\n name: test-application-zyh\n enterprise_project_id: 0",
"comp2/comp_demo/ss-component.yaml": "kind: ServiceStageComponent\nspec:\n name: zyh-component-2\n environment_name: default/env-ayl\n refer_resources:\n - type: cce\n id: c90a1197-c26c-11ef-8078-0255ac10009a"
},
"variable": {
"comp2/dep_name": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo-dep",
"description": "工作负载的名字"
},
"comp1/image": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": null,
"description": "工作负载镜像"
},
"image": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": null,
"description": "工作负载镜像"
},
"comp2/value": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "World",
"description": "Hello接口响应数据"
},
"comp3/cce_resource": {
"parsed_type": {
"type": "cce",
"properties": null,
"item_type": null
},
"type": "cce",
"sensitive": false,
"default": null,
"description": "CCE资源"
},
"comp1/namespace": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo",
"description": "命名空间"
},
"comp1/value": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "World",
"description": "Hello接口响应数据"
},
"comp3/namespace": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo",
"description": "命名空间"
},
"svc_port": {
"parsed_type": {
"type": "integer",
"properties": null,
"item_type": null
},
"type": "integer",
"sensitive": false,
"default": 8080,
"description": "服务的端口号"
},
"cce_resource": {
"parsed_type": {
"type": "cce",
"properties": null,
"item_type": null
},
"type": "cce",
"sensitive": false,
"default": null,
"description": "CCE资源"
},
"comp1/svc_port": {
"parsed_type": {
"type": "integer",
"properties": null,
"item_type": null
},
"type": "integer",
"sensitive": false,
"default": 8080,
"description": "服务的端口号"
},
"comp3/value": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "World",
"description": "Hello接口响应数据"
},
"comp1/cce_resource": {
"parsed_type": {
"type": "cce",
"properties": null,
"item_type": null
},
"type": "cce",
"sensitive": false,
"default": null,
"description": "CCE资源"
},
"comp3/image": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": null,
"description": "工作负载镜像"
},
"dep_name": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo-dep",
"description": "工作负载的名字"
},
"comp2/cce_resource": {
"parsed_type": {
"type": "cce",
"properties": null,
"item_type": null
},
"type": "cce",
"sensitive": false,
"default": null,
"description": "CCE资源"
},
"comp1/dep_name": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo-dep",
"description": "工作负载的名字"
},
"comp3/dep_name": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo-dep",
"description": "工作负载的名字"
},
"comp3/svc_port": {
"parsed_type": {
"type": "integer",
"properties": null,
"item_type": null
},
"type": "integer",
"sensitive": false,
"default": 8080,
"description": "服务的端口号"
},
"comp2/svc_port": {
"parsed_type": {
"type": "integer",
"properties": null,
"item_type": null
},
"type": "integer",
"sensitive": false,
"default": 8080,
"description": "服务的端口号"
},
"namespace": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo",
"description": "命名空间"
},
"comp2/image": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": null,
"description": "工作负载镜像"
},
"value": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "World",
"description": "Hello接口响应数据"
},
"comp2/namespace": {
"parsed_type": {
"type": "string",
"properties": null,
"item_type": null
},
"type": "string",
"sensitive": false,
"default": "demo",
"description": "命名空间"
}
},
"input_values": {
"comp2/dep_name": "demo-dep",
"comp1/image": "swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"image": "swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"comp2/value": "World",
"comp3/cce_resource": null,
"comp1/namespace": "demo",
"comp1/value": "World",
"comp3/namespace": "demo",
"svc_port": 8080,
"cce_resource": null,
"comp1/svc_port": 8080,
"comp3/value": "World",
"comp1/cce_resource": null,
"comp3/image": "swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"dep_name": "demo-dep",
"comp2/cce_resource": null,
"comp1/dep_name": "demo-dep",
"comp3/dep_name": "demo-dep",
"comp3/svc_port": 8080,
"comp2/svc_port": 8080,
"namespace": "demo",
"comp2/image": "swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest",
"value": "World",
"comp2/namespace": "demo"
},
"package_name": "demo-app-package.zip"
}
]
}
状态码
|
状态码 |
描述 |
|---|---|
|
200 |
操作成功。 |
|
400 |
错误的请求。 |
|
404 |
请求对象不存在。 |
|
500 |
内部错误。 |
错误码
请参考ServiceStage错误码。