更新时间: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

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

相关文档