更新时间:2022-06-15 GMT+08:00
分享

部署environment

功能介绍

部署基因测序所需的环境,开始基因测序之前,请先进行必要的资源配置。

URI

POST /v1/environments

请求消息

请求参数

请求参数如表1所示。

表1 请求参数

参数

是否必选

参数类型

描述

project_id

否

String

项目ID,获取方式详见获取项目ID。

source

是

String

部署环境的方式,支持选项:

  • cci:指GCS部署的底层资源使用的是华为云服务云容器实例(简称CCI)。使用该服务,您不需要关注底层资源的创建和管理,通过简单的配置即可快速创建容器负载。如果基因测序流程成熟稳定,建议您使用CCI,可以省去对资源的关注。CCI的详细信息请参见什么是云容器实例。
  • cce:指GCS部署的底层资源使用的是华为云服务云容器引擎(简称CCE)。使用该服务,您需要创建并管理自己的资源。CCE的详细信息请参见什么是云容器引擎。

cluster_id

否

String

集群ID。当“source”填写的为“cce”,并且需要通过已有集群来部署环境时,此处需要填写已有集群的集群ID。否则此处不用填写。

cluster_name

否

String

命名空间。当“source”填写的为“cci”,并且需要通过已有命名空间来部署环境时,此处需要填写已有命名空间名称。否则此处不用填写。

bucket_name

否

String

对象存储桶名。当“source”填写的为“cce“,该字段必填,当“source”填写的为“cci“,若使用桶,必须为并行文件系统,若未使用桶可不填。

inputs_json

否

表2

当“source”填写的为“cce”,并且需要通过创建新的集群来部署环境时,此上需要填写新建集群需要的入参。

default_env

否

String

是否设置为默认环境,默认值false。支持选项:

  • ture:设置为默认环境
  • false:不设置为默认环境

env_name

是

String

环境名称,输入字符最大长度为64,以小写字母开头,允许出现中划线(-)、小写字母和数字,且必须以小写字母或数字结尾。

ak

否

String

用户AK。当“source ”为”cci”时,需要填写。获取方法请参见访问密钥。

sk

否

String

用户SK。当“source ”为”cci”时,需要填写。获取方法请参见访问密钥。

enterprise_project_id

否

String

环境的企业项目id,默认为“0”,default企业项目,注意企业项目id要与命名空间的企业项目对应

表2 inputs_json参数

参数

是否必选

类型

描述

kind

是

String

资源类型,必须设置为“cluster”。

apiVersion

是

String

API的版本,当前为固定值“v2”。

metadata

是

表 3 metadata字段数据结构说明

-

spec

是

表 4 ClusterSpec字段数据结构说明

-

表3 metadata字段数据结构说明

参数

是否必选

类型

描述

name

是

String

集群名称。

annotations

否

Map[String]String

集群注解。

表4 ClusterSpec字段数据结构说明

参数

是否必选

类型

描述

authentication

是

Map[String]String

认证方式。

kubeProxyMode

是

String

KubeProxy代理模式。

description

否

String

集群描述信息。

region

否

String

集群所在的地域。

az

是

String

集群所在的可用分区。

vpc

是

String

集群所在的虚拟私有云。

vpcId

是

String

集群所在虚拟私有云的ID。

subnet

是

String

集群所在的子网。

subnetId

是

String

集群子网的ID。

version

否

String

集群版本号,一般类似v1.11.7。

networkMode

否

String

集群容器网络的类型,类似overlay_l3,vpc_router等。

containerNetworkCIDR

否

String

容器网络的CIDR,一般为172.16.0.0/16。

template

否

表5

节点模板,创建集群时若需要添加节点则填写。

chargeMode

否

Integer

计费模式:0为包周期计费,1为按需计费。

flavor

否

String

集群规格,类似cce.s1.large等。

表5 Host字段数据结构说明

参数

是否必选

类型

描述

kind

是

String

资源类型,必须设置为“host”。

apiVersion

是

String

API的版本,当前为固定值“v2”。

metadata

是

表 3 metadata字段数据结构说明

-

spec

是

表6

-

表6 HostSpec字段数据结构说明

参数

是否必选

类型

描述

az

否

String

节点所在的可用分区。如果没有指定az值,节点将创建在所属集群的可用分区内。

flavor

是

String

虚拟机规格。

volume

是

表7

虚拟机磁盘信息。

sshKey

是

String

节点所使用的密钥对的名字。

num

是

Integer

批量创建节点的个数。

enableEip

否

Boolean

是否使用EIP。

os

否

String

节点的操作系统

extendParam

否

Interface

扩展参数,key/value对格式

表7 Volume字段数据结构说明

参数

是否必选

类型

描述

diskType

是

String

磁盘类型,区分是系统盘还是数据盘。

diskSize

是

Integer

磁盘大小,单位为GB,不同磁盘类型对磁盘大小有不同的约束。

  • root:表示系统盘,磁盘大小必须为40。
  • data:表示数据盘,则磁盘大小范围是100-32768。

volumeType

是

String

磁盘IO类型。类型枚举值如下:

  • SATA:普通IO,指由SATA存储介质构成的云硬盘。
  • SAS:高IO,指由SAS存储介质构成的云硬盘。
  • SSD:超高IO,指由SSD存储介质构成的云硬盘。

deleteAble

是

Boolean

是否可被删除。

editIoSize

是

Boolean

是否可编辑IO大小。

editIoType

是

Boolean

是否可编辑IO类型。

editShareType

是

Boolean

是否可编辑租户共享类型。

maxSize

是

Integer

最大规格。

minSize

是

Integer

最小规格。

product

是

String

产品名称。

product_id

是

String

产品ID。

shareable

是

Boolean

是否支持租户共享。

sysDiskIops

否

String

系统盘IO速率。

volumnType

是

String

卷类型。

请求示例

已有集群ID为3aaa7db4-3bfa-11e9-9e24-0255ac10576a的CCE集群资源部署名为gcs-env-cce环境,使用gene-container-bucket对象存储桶。

POST /v1/environments
Host:Host Server   
Content-Type:application/json
{
	"source":"cce",
	"project_id":"c515675*********8a8a81ede51894ac",
	"cluster_id":"3aaa7db4-3bfa-11e9-9e24-0255ac10576a",
	"bucket_name":"gene-container-bucket",
	"env_name":"gcs-env-cce",
	"default_env":false,
        "enterprise_project_id":"0"
}

新建入参为inputs_json的cce集群资源部署名为gcs-env-cce-new环境,使用gene-container-bucket对象存储桶。

{
	"source": "cce",
	"project_id": "c515675********8a8a81ede51894ac",
	"inputs_json": {
		"kind": "cluster",
		"apiVersion": "v2",
		"metadata": {
			"name": "gene-container-new-cce",
			"annotations": {
				"installIstioVersion": "false",
				"cluster.install.addons/install": "[{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]"
			}
		},
		"spec": {
			"networkMode": "overlay_l2",
			"region": "southchina",
			"description": "",
			"subnet": "CCI-dc1-486477335",
			"subnetId": "959903d0-383d-47d4-8565-7ffdeab4d31b",
			"vpcId": "005d2390-0cbc-4f8d-a0eb-4cd22b71f79b",
			"vpc": "vpc-fcb-hl",
			"containerNetworkCIDR": "172.16.0.0/16",
			"version": "v1.11.7",
			"flavor": "cce.s2.small",
			"chargeMode": 0,
			"az": "az1.dc1",
			"kubeProxyMode": "iptables",
			"template": {
				"kind": "host",
				"apiVersion": "v2",
				"metadata": {
					"name": "gcs-env-node"
				},
				"spec": {
					"az": "az1.dc1",
					"flavor": "c3.xlarge.2",
					"os": "EulerOS 2.2",
					"osVersion": true,
					"volume": [{
						"diskType": "root",
						"diskSize": 40,
						"volumeType": "SATA",
						"product": "",
						"shareable": false,
						"editIoType": true,
						"editShareType": false,
						"editIoSize": false,
						"deleteAble": false,
						"minSize": 40,
						"maxSize": 1024,
						"diskSizeTip": "",
						"sysDiskIops": "",
						"productId": "00301-34090-0--0"
					},
					{
						"diskType": "data",
						"diskSize": 100,
						"volumeType": "SATA",
						"minDocker": 60,
						"dockerChecked": false,
						"product": "",
						"shareable": false,
						"editIoType": true,
						"editShareType": false,
						"editIoSize": true,
						"deleteAble": true,
						"minSize": 100,
						"maxSize": 32678,
						"maxAllocation": 100,
						"dockerPercent": 90,
						"kubeletPercent": 10,
						"diskSizeTip": "100-32678",
						"dataDiskSelectedId": "SATA",
						"dataDiskIops": "100-1,000 IOPS",
						"productId": "00301-34090-0--0"
					}],
					"enableEip": false,
					"num": 1,
					"personality": [],
					"extendParam": {
						
					},
					"sshkey": "KeyPair-bc37"
				}
			},
			"authentication": {
				"mode": "rbac"
			}
		}
	},
	"bucket_name": "gene-container-bucket",
	"env_name": "gcs-env-cce-new",
	"default_env": false
}

已有CCI命名空间cci-namespace部署名为gcs-env-gcsenv-cci环境,使用gene-container-bucket对象存储桶。

POST /v1/environments
Host:Host Server   
Content-Type:application/json
{
	"source":"cci",
	"project_id":"c515675********98a8a81ede51894ac",
	"cluster_name":"cci-namespace",
	"bucket_name":"gene-container-bucket",
	"env_name":"gcs-env-gcsenv-cci",
        "ak":"ZHV********RJQVFSCJQ",
        "sk":"YVfTZqpgFOH********3XNTrAbhQmw7JhxaaadNf",
	"default_env":false
}

响应消息

响应参数

请求成功的响应参数如表8所示。

表8 成功响应参数

参数

参数类型

描述

id

String

部署成功的环境ID。

响应示例

{
    "id": "e19d3faf-9f04-9685-e5c0-fbe8d40b96cd"
}

请求失败的响应参数如表9所示。

表9 失败响应参数

参数

参数类型

描述

error_msg

String

请求失败的详细原因。

error_code

String

请求失败的错误码,错误码详细描述请参见错误码。

extend

String

请求失败的扩展原因。

失败响应示例

{
  "error_msg": "Server internal error, please contact the administrator.",
  "error_code": "GENE.5008012",
  "extend": ""
}

状态码

  • 正常

    状态码如表10所示。

表10 状态码

状态码

描述

201

环境部署成功。

  • 异常

    状态码如表11所示。

表11 状态码

状态码

描述

400

请求参数有误,当前请求无法被服务器解析。除非进行修改,否则客户端不应重复提交这个请求。

409

由于和被请求的资源的当前状态之间存在冲突,请求无法完成。

500

服务器遇到了一个未曾预料的状况,导致无法完成对请求的处理。

相关文档