Updated on 2023-11-23 GMT+08:00

Querying a List of Deployments

Function

This API is used to query a list of Deployments.

URI

GET /v3/{project_id}/edgemgr/deployments?{name=xxx,node_id=xxx,limit=xxx,offset=xxx}

Table 1 Path parameter

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain a project ID, see Obtaining a Project ID.

Table 2 Query parameters

Parameter

Mandatory

Type

Description

limit

No

Long

Number of records displayed on each page. The maximum value is 100. The default value is 10.

offset

No

Long

Start position for a query. The default value is 0.

sort

No

String

Sorting style of the query results. created_at:desc indicates that the query results are sorted by creation time in descending order. created_at:asc indicates that the query results are sorted by creation time in ascending order.

name

No

String

Deployment name. Fuzzy match is supported.

node_id

No

String

Node ID, based on which the list of deployed applications is to be queried. Specify either this parameter or group_id in the request.

group_id

No

String

Node group ID, based on which the list of deployed applications is to be queried. Specify either this parameter or node_id in the request.

Request

Table 3 Parameters in the request header

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Message body type (format).

The default value application/json is recommended.

X-Auth-Token

Yes

String

User token. The token can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token.

Response

When the status code is 200, the response parameters are as follows:

Table 4 Parameters in the response body

Parameter

Type

Description

count

Long

Total number of Deployments.

deployments

Array of EdgeDeploymentResponseV3 objects

List of Deployments.

Table 5 EdgeDeploymentResponseV3

Parameter

Type

Description

id

String

Deployment ID.

name

String

Deployment name. The name contains a maximum of 32 characters starting and ending with a letter or digit. Only lowercase letters, digits, and hyphens (-) are allowed.

replicas

Integer

Total number of Deployment instances.

ready_replicas

Integer

Number of normal instances.

description

String

Deployment description. The description contains a maximum of 255 characters. The following characters are not allowed: ^~#$%&*<>()[]{}'"\

group_id

String

ID of the node group to which the Deployment is deployed. Specify either group_id or node_ids.

node_ids

Array of strings

ID of the edge node to which the Deployment is deployed. Currently, only one edge node is supported.

tags

Array of Attribute objects

Deployment tag.

api_version

String

Deployment version.

source

String

Deployment source. The value can be userdefined (custom).

project_id

String

Project ID.

created_at

String

Time when the Deployment was created.

updated_at

String

Time when the Deployment was updated.

template

PodRequest object

Deployment chart.

state

String

Application status, which can be FREEZE, PENDING_DELETE, or DELETE_FAILED. This field is reserved.

source_id

String

Reserved.

Table 6 PodRequest

Parameter

Type

Description

configs

PodConfigs object

Application instance configuration.

affinity

affinity object

Affinity rules for the Deployment. This parameter is available only for platinum service instances.

init_containers

Array of ContainerDef objects

init container configuration of the Deployment.

containers

Array of ContainerDef objects

Container configuration of the Deployment.

Table 7 ContainerDef

Parameter

Type

Description

name

String

Container name. The name contains a maximum of 32 characters starting and ending with a letter or digit. Only lowercase letters, digits, and hyphens (-) are allowed.

image_url

String

Container image URL.

args

Array of strings

Container startup arguments.

command

Array of strings

Container startup commands.

resources

ResQuest object

Container resource amount.

envs

Array of Env objects

Key-value pair of the container environment variable.

ports

Array of HostContainerPortMapping objects

Container port mapping.

privileged

Boolean

Whether the privileged container is enabled. The default value is false.

readiness_probe

Probe object

Workload readiness probe configuration.

liveness_probe

Probe object

Workload liveness probe configuration.

version

String

Container version.

volumes

Array of Volume objects

Volumes attached to containers.

npu_type

String

NPU type. NUP type supports D310.

  • D310
  • If this parameter is left blank, D310 is used.
Table 8 Volume

Parameter

Type

Description

name

String

Volume name. The name contains a maximum of 63 characters. Only lowercase letters and digits are allowed.

type

String

Volume type. The value can be configMap, secret, emptyDir, or hostPath.

read_only

Boolean

Read/Write permission. The default value is read.

source

String

Volume source. When type is set to hostPath, enter a path. The path must start with a slash (/) and can contain hyphens (-), slashes (/), underscores (_), periods (.), letters, and digits.

When type is set to secret, enter a secret name. When type is set to configMap, enter a ConfigMap name. When type is set to emptyDir, enter a disk or memory.

destination

String

Volume mount path. It must be a valid path.

Table 9 Probe

Parameter

Type

Description

exec

Table 11 object

CLI-based check.

http_get

HttpGet object

HTTP health check.

initial_delay_seconds

Long

Period between the workload start time and the probe start time. The value is an integer greater than 0 and less than or equal to 3600. The default value is 10.

timeout_seconds

Long

Probing timeout time. The value is an integer greater than 0 and less than or equal to 3600. The default value is 1.

Table 10 HttpGet

Parameter

Type

Description

path

String

The value must start with a slash (/). The structure is as follows: Protocol type://Host address:Port path

port

Integer

HTTP port number for detection. The value is an integer ranging from 1 to 65535.

host

String

Host address. The default value is the container IP address.

scheme

String

Protocol type. The value can be HTTP or HTTPS. The default value is HTTP.

Table 11 Exec

Parameter

Type

Description

command

String

Commands to be executed by the probe. The value contains a maximum of 10,240 characters.

Table 12 HostContainerPortMapping

Parameter

Type

Description

container_port

Long

Container port number, which is an integer ranging from 1 to 65535.

host_port

Long

Host port number, which is an integer ranging from 1 to 65535.

host_ip

String

NIC address of the host.

host_port_range

HostPortRange object

Host port range. Host ports in the specified range are automatically allocated to application instances. Specify either host_port_range or host_port.

Table 13 HostPortRange

Parameter

Type

Description

min_port

Long

Lower limit of the host port, which is an integer ranging from 1 to 65535.

max_port

Long

Upper limit of the host port, which is an integer ranging from 1 to 65535. The value of max_port must be greater than that of min_port.

Table 14 Env

Parameter

Type

Description

name

String

Key of an environment variable. The key must be unique and can contain a maximum of 2,048 characters starting with a letter or underscore. Only digits, letters, and underscores (_) are allowed.

value

String

Value of an environment variable. The value contains a maximum of 2,048 characters. Specify only one of the value, value_from, and field_path parameters.

value_from

Table 19 object

Environment variables can be imported from ConfigMaps or secrets.

field_path

String

Currently, this parameter can be set only to status.hostIP, that is, the IP address of an edge node is used as the environment variable.

Table 15 ResQuest

Parameter

Type

Description

limits

Res object

Resource amount limit.

requests

Res object

Requested resource amount.

Table 16 Res

Parameter

Type

Description

cpu

String

Number of CPU cores. The value range is 0.01–1000.

memory

String

Memory size, in MBs. The value range is 0.01–1,024,000. Note that the minimum value of limits for the memory is 4.

gpu

String

GPU size, in MBs. The value range is 0.01–1,024,000.

npu

String

Number of NPUs. The value range is 1–1000.

Table 17 PodConfigs

Parameter

Type

Description

host_network

Boolean

Whether the host network is enabled for an application instance. If the host network is not enabled, port mapping is used. The default value is false.

host_pid

Boolean

Whether an application instance shares the PID namespace with the host. The default value is false.

migration

Boolean

Whether an application instance is migrated when a fault occurs. This parameter is mandatory when the application is deployed to a specified node group. The default value is false.

restart_policy

String

Restart policy of an application instance. The value can be Always, OnFailure, or Never.

toleration_seconds

Integer

Time that a fault can be tolerated before an application instance is migrated. This parameter takes effect only when the application is deployed to a specified node group.

Table 18 Attribute

Parameter

Type

Description

key

String

Key of a node property. The key can contain 1 to 128 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

value

String

Value of a node property. The value can contain 1 to 256 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

Table 19 value_from

Parameter

Type

Description

secret

Table 20 object

Secret to be referenced by an environment variable. If value_from is specified, either secret or configmap must be specified.

configmap

Table 21 object

ConfigMap to be referenced by an environment variable.

Table 20 secret

Parameter

Type

Description

name

String

Secret name.

key

String

Secret key.

Table 21 configmap

Parameter

Type

Description

name

String

ConfigMap name.

key

String

ConfigMap key.

When the status code is 400, the response parameters are as follows:

Table 22 Parameters in the response body

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

When the status code is 500, the response parameters are as follows:

Table 23 Parameters in the response body

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Example Request

None

Example Response

Example response with status code 200:

{
    "count": 1,
    "deployments": [
        {
            "id": "3e64d98a-37c5-43a6-9bfe-052b9083e362",
            "name": "app-test",
            "replicas": 1,
            "ready_replicas": 1,
            "description": "this is a test app",
            "group_id": "",
            "node_ids": [
                "29d20c18-c20c-4a45-a087-42c766fc5d97"
            ],
            "tags": [
                {
                    "key": "app",
                    "value": "test"
                }
            ],
            "api_version": "v3",
            "source": "userdefine",
            "project_id": "bcd83056c918480f8f190844bd425b23",
            "created_at": "2019-10-10T02:20:40.630Z",
            "updated_at": "2019-10-10T02:20:40.630Z",
            "template": {
                "configs": {
                    "host_network": true,
                    "host_pid": true,
                    "migration": true,
                    "restart_policy": "Always",
                    "toleration_seconds": 300
                },
                "init_containers": [],
                "containers": [
                    {
                        "name": "container-0",
                        "image_url": "",
                        "args": [
                            "-c",
                            "sleep 1000"
                        ],
                        "command": [
                            "/bin/bash"
                        ],
                        "resources": {
                            "limits": {
                                "cpu": "0.25",
                                "memory": "500",
                                "gpu": "500"
                            },
                            "requests": {
                                "cpu": "0.25",
                                "memory": "500",
                                "gpu": "500"
                            }
                        },
                        "envs": [
                            {
                                "name": "CERT_PATH",
                                "value": "/opt/cert"
                            }
                        ],
                        "ports": [
                            {
                                "container_port": 80,
                                "host_port": 80
                            }
                        ],
                        "privileged": true,
                        "readiness_probe": {
                            "http_get": {
                                "path": "/",
                                "port": 80,
                                "scheme": "http"
                            },
                            "initial_delay_seconds": 10,
                            "timeout_seconds": 10
                        },
                        "liveness_probe": {
                            "http_get": {
                                "path": "/",
                                "port": 80,
                                "scheme": "http"
                            },
                            "initial_delay_seconds": 10,
                            "timeout_seconds": 10
                        },
                        "version": "1.0",
                        "npu_type": "",
                        "volumes": [
                            {
                                "name": "log-volume",
                                "type": "hostPath",
                                "read_only": false,
                                "source": "/var/IEF",
                                "destination": "/var/IEF"
                            }
                        ]
                    }
                ]
            }
        }
    ]
}

Example response with status code 400:

{
	"error_code" : "IEF.100001",
	"error_msg" : "PROJECT_ID not found"
}

Example response with status code 500:

{
	"error_code" : "IEF.100158",
	"error_msg" : "Fail to extract gpu information"
}

Error Codes

For details, see Error Codes.