Creating Resource Pools¶
Function¶
This API is used to create resource pools.
URI¶
POST /v2/{project_id}/pools
Parameter | Mandatory | Type | Description |
---|---|---|---|
project_id | Yes | String | Project ID. |
Request Parameters¶
Parameter | Mandatory | Type | Description |
---|---|---|---|
request-type | No | String | Request source. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
apiVersion | Yes | String | API version. Options:
|
kind | Yes | String | Resource type. Options:
|
metadata | Yes | PoolMetadataCreation object | Metadata of a resource pool. |
spec | No | PoolSpecCreation object | Description of a resource pool. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
labels | Yes | PoolLabelsCreation object | Resource pool labels. |
annotations | No | PoolAnnotationsCreation object | Resource pool annotations. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
os.modelarts/workspace.id | No | String | Workspace ID. The default value is 0. Default: 0 |
os.modelarts/name | Yes | String | Specified resource pool name Minimum: 4 Maximum: 64 |
os.modelarts/sharing | No | String | Whether the resource pool can be shared. The value can be unshared or shared. |
os.modelarts/node.prefix | No | String | Customized node prefix. This parameter is optional. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
os.modelarts/description | No | String | Description of a resource pool |
os.modelarts/billing.mode | No | String | Billing mode. Options:
|
os.modelarts/auto.renew | No | String | Whether to automatically renew the subscription. Options:
|
os.modelarts/promotion.info | No | String | Discount selected on the operations platform |
os.modelarts/service.console.url | No | String | URL of the page displayed after the subscription order is paid |
os.modelarts/scheduler.extension | No | String | Priority that can be set for the jobs delivered by other users to the shared resource pool |
Parameter | Mandatory | Type | Description |
---|---|---|---|
type | Yes | String | Resource pool type. The options are as follows:
|
scope | No | Array of strings | Job type enabled, which cannot be specified for logical pools. Options:
Enumeration values:
|
resources | Yes | Array of PoolResourceFlavorCount objects | Resource specifications in a resource pool, including resource specifications and the number of resources for each specification |
parent | No | String | Parent resource pool ID. This parameter is mandatory when a logical sub-pool is created based on a specified resource pool. |
network | No | PoolNetwork object | Network settings for a resource pool. This parameter is mandatory for creating physical resource pools and is unavailable for creating logical resource pools. |
containerNetwork | No | containerNetwork object | Kubernetes container network segment. Only one container network segment is supported. This parameter is optional. If this parameter is not set, the default value is specified by CCE. |
kubernetesSvcIpRange | No | String | CIDR of the Kubernetes service network segment |
masters | No | Array of PoolClusterMaster objects | Master node parameters in a resource pool. This parameter is optional for physical resource pools and is unavailable for logical resource pools. |
driver | No | PoolDriver object | Resource pool driver |
userLogin | No | PoolUserLogin object | Node login information of a privilege pool |
clusters | No | Array of PoolClusterInfo objects | Privilege pool cluster information |
ipv6enable | No | Boolean | Whether to enable IPv6 |
Parameter | Mandatory | Type | Description |
---|---|---|---|
flavor | Yes | String | Resource specifications name, for example, modelarts.vm.gpu.t4u8 |
count | Yes | Integer | Minimum count for the specifications in a resource pool |
maxCount | Yes | Integer | Elastic usage of the resource specifications. This parameter value is the same the count value in a physical pool; It is greater than or equal to the count value in a logical pool. |
extendParams | No | Map<String,String> | Custom configuration, for example, setting dockerSize to "extendParams": {"dockerBaseSize": "100" } |
azs | No | Array of PoolNodeAz objects | AZ where resource pool nodes are deployed. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
az | Yes | String | AZ name. |
count | Yes | Integer | Number of nodes for expanding the capacity of a specified AZ. Minimum: 1 Maximum: 2000 |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Network name. When you create a network with a specified name, the system will automatically create subnets for you. By default, the first subnet will be used. Minimum: 4 Maximum: 128 |
vpcId | No | String | VPC ID, which must be specified when a privileged pool is created and is unavailable for a non-privileged pool |
subnetId | No | String | Subnet ID, which must be specified when a privileged pool is created and is unavailable for a non-privileged pool |
Parameter | Mandatory | Type | Description |
---|---|---|---|
cidr | No | String | CIDR block of the container network segment. Recommended: 10.0.0.0/12-19, 172.16.0.0/16-19, or 192.168.0.0/16-19. If the selected CIDR block conflicts with existing ones, an error will be reported. This parameter cannot be modified after the cluster is created. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
az | No | String | AZ where the master node is located |
Parameter | Mandatory | Type | Description |
---|---|---|---|
gpuVersion | No | String | GPU driver version. This parameter is available when GPUs are used in a physical resource pool. For example, the GPU driver version is 440.33. |
npuVersion | No | String | NPU driver version. This parameter is available when Ascend chips are used in a physical resource pool. For example, the Ascend driver version is C78. |
updateStrategy | No | String | Driver upgrade policy. Options:
|
Parameter | Mandatory | Type | Description |
---|---|---|---|
keyPairName | No | String | Key pair name |
password | No | String | Password, which must be salted, encrypted, and encoded using Base64. The default username is root. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Cluster name |
providerId | No | String | Cluster ID |
Response Parameters¶
Status code: 200
Parameter | Type | Description |
---|---|---|
apiVersion | String | API version. Options:
|
kind | String | Resource type. Options:
|
metadata | PoolMetadata object | Metadata of a resource pool. |
spec | PoolSpec object | Description of a resource pool. |
status | PoolStatus object | Status of a resource pool. |
Parameter | Type | Description |
---|---|---|
name | String | Automatically generated resource pool name, which is equivalent to pool ID. Minimum: 4 Maximum: 128 |
creationTimestamp | String | Timestamp, for example, 2021-11-01T03:49:41Z. |
labels | PoolMetaLabels object | Resource pool labels. |
annotations | PoolMetaAnnotations object | Resource pool annotations. |
Parameter | Type | Description |
---|---|---|
os.modelarts/workspace.id | String | Workspace ID Default: 0 |
os.modelarts/name | String | Specified resource pool name. Minimum: 4 Maximum: 64 |
os.modelarts/resource.id | String | Resource ID, which is typically provided for CBC. |
os.modelarts/tenant.domain.id | String | ID of the tenant corresponding to the resource pool, which records the tenant account where the resource pool is created |
os.modelarts/create-from | String | Source of a resource pool, for example, admin-console, indicating that the resource pool is created by the administrator on the ModelArts console |
os.modelarts.pool/biz | String | Business type of a resource pool. The value can be public or private. |
os.modelarts/privileged | String | Whether a resource pool is a privileged pool. If this parameter is specified, the resource pool is a privileged one. |
os.modelarts/sharing | String | Whether the resource pool can be shared. Options:
|
Parameter | Type | Description |
---|---|---|
os.modelarts/description | String | Description of a resource pool. |
os.modelarts/billing.mode | String | Billing mode. Options: |
os.modelarts/auto.renew | String | Whether to automatically renew the subscription. Options:
|
os.modelarts/promotion.info | String | Discount selected in CBC. |
os.modelarts/service.console.url | String | URL of the page displayed after the subscription order is paid. |
os.modelarts/flavor.resource.ids | String | Resource ID corresponding to each specification, which is used for interaction with the operations platform |
os.modelarts/tms.tags | String | Resource tags specified by the user during creation |
os.modelarts/scheduler.extension | String | Priority that can be set for the jobs delivered by other users to the shared resource pool |
os.modelarts.pool/subpools.count | String | Number of logical sub-pools in a resource pool |
Parameter | Type | Description |
---|---|---|
type | String | Resource pool type. The options are as follows:
|
scope | Array of strings | Job type enabled, which cannot be specified for logical pools. Options:
Enumeration values:
|
resources | Array of PoolResourceFlavorCount objects | Resource specifications in a resource pool, including resource specifications and the number of resources for each specification. |
network | PoolNetwork object | Network settings for a resource pool. This parameter is mandatory for physical resource pools and is unavailable for logical resource pools. |
containerNetwork | PoolClusterContainerNetwork object | Kubernetes container network |
kubernetesSvcIpRange | String | CIDR of the Kubernetes service network segment |
masters | Array of PoolClusterMaster objects | Master node parameters in a resource pool. This parameter is optional for physical resource pools and is unavailable for logical resource pools. |
driver | PoolDriver object | Resource pool driver. |
userLogin | PoolUserLogin object | Node login information of a privilege pool |
clusters | Array of PoolClusterInfo objects | Privilege pool cluster information |
ipv6enable | Boolean | Whether to enable IPv6 |
controlMode | Integer | Restriction status of a resource pool. Options:
|
Parameter | Type | Description |
---|---|---|
flavor | String | Resource specifications name, for example, modelarts.vm.gpu.t4u8 |
count | Integer | Minimum count for the specifications in a resource pool |
maxCount | Integer | Elastic usage of the resource specifications. This parameter value is the same the count value in a physical pool; It is greater than or equal to the count value in a logical pool. |
extendParams | Map<String,String> | Custom configuration, for example, setting dockerSize to "extendParams": {"dockerBaseSize": "100" } |
azs | Array of PoolNodeAz objects | AZ where resource pool nodes are deployed. |
Parameter | Type | Description |
---|---|---|
name | String | Network name. When you create a network with a specified name, the system will automatically create subnets for you. By default, the first subnet will be used. Minimum: 4 Maximum: 128 |
vpcId | String | VPC ID, which must be specified when a privileged pool is created and is unavailable for a non-privileged pool |
subnetId | String | Subnet ID, which must be specified when a privileged pool is created and is unavailable for a non-privileged pool |
Parameter | Type | Description |
---|---|---|
mode | String | Container network model Enumeration values:
|
cidr | String | Container network segment. This parameter is available only when the container network model is overlay_l2 or vpc-router. |
Parameter | Type | Description |
---|---|---|
az | String | AZ where the master node is located |
Parameter | Type | Description |
---|---|---|
gpuVersion | String | GPU driver version. This parameter is available when GPUs are used in a physical resource pool. For example, the GPU driver version is 440.33. |
npuVersion | String | NPU driver version. This parameter is available when Ascend chips are used in a physical resource pool. For example, the Ascend driver version is C78. |
updateStrategy | String | Driver upgrade policy. Options:
|
Parameter | Type | Description |
---|---|---|
keyPairName | String | Key pair name |
password | String | Password, which must be salted, encrypted, and encoded using Base64. The default username is root. |
Parameter | Type | Description |
---|---|---|
phase | String | Resource pool status. Options:
|
message | String | Message indicating that the resource pool is in the current state. |
resources | resources object | Left blank for logical pools, which do not need to be created. |
scope | Array of scope objects | Service status of a resource pool. |
driver | driver object | Resource pool driver. |
parent | String | Name of the parent node of a resource pool. This parameter is left blank for physical pools. |
root | String | Name of the root node in a resource pool. For a physical pool, the value is its name. |
clusters | Array of PoolClusterInfo objects | Resource pool cluster information. This parameter is available only for privileged pools. |
Parameter | Type | Description |
---|---|---|
creating | PoolResourceFlavorCount object | Number of resources that are being created. |
available | PoolResourceFlavorCount object | Number of available resources. |
abnormal | PoolResourceFlavorCount object | Number of unavailable resources. |
deleting | PoolResourceFlavorCount object | Number of resources that are being deleted. |
Parameter | Type | Description |
---|---|---|
az | String | AZ name. |
count | Integer | Number of nodes for expanding the capacity of a specified AZ. Minimum: 1 Maximum: 2000 |
Parameter | Type | Description |
---|---|---|
scopeType | String | Job type enabled, which cannot be specified for logical pools. Options:
Enumeration values:
|
state | String | Service status. Options:
|
Parameter | Type | Description |
---|---|---|
gpu | PoolDriverStatus object | GPU driver. |
npu | PoolDriverStatus object | NPU driver. |
Parameter | Type | Description |
---|---|---|
version | String | Driver version |
state | String | Driver status. Options:
|
Parameter | Type | Description |
---|---|---|
name | String | Cluster name |
providerId | String | Cluster ID |
Status code: 400
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 409
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Example Requests¶
Create a physical pool.
POST https://{endpoint}/v2/{project_id}/pools { "kind" : "Pool", "apiVersion" : "v1", "metadata" : { "labels" : { "os.modelarts/name" : "pool-001" }, "annotations" : { "os.modelarts/description" : "", "os.modelarts/billing.mode" : "0" } }, "spec" : { "type" : "Dedicate", "scope" : [ "Train" ], "network" : { "name" : "net-01" }, "masters" : [ { "az" : "xxxxxx-7a" } ], "resources" : [ { "flavor" : "modelarts.vm.gpu.t4u8", "count" : 2 } ], "driver" : { "gpuVersion" : "440.31" } } }
Create a logical pool.
POST https://{endpoint}/v2/{project_id}/pools { "kind" : "Pool", "apiVersion" : "v1", "metadata" : { "labels" : { "os.modelarts/name" : "pool-logic-01" }, "annotations" : { "os.modelarts/description" : "", "os.modelarts/billing.mode" : 0, "os.modelarts/product.id" : "xxx" } }, "spec" : { "type" : "Logical", "scope" : [ "Train" ], "resources" : [ { "flavor" : "modelarts.vm.gpu.t4u8", "count" : 2 } ] } }
Example Responses¶
Status code: 400
Bad request
{
"error_code" : "ModelArts.50004000",
"error_msg" : "Bad request"
}
Status code: 409
Already exists
{
"error_code" : "ModelArts.50015000",
"error_msg" : "Pool already exists."
}
Status Codes¶
Status Code | Description |
---|---|
200 | OK |
400 | Bad request |
409 | Already exists |
Error Codes¶
See Error Codes.