Table of Contents maxLevel 2
Introduction
These APIs provide services for manipulating ote-stack platform on AI Edge Blueprint.
...
Repository Management
Get Images
GET /v1/repository/image
Description
List images of the specified project.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
orderBy | string | no | id | OrderBy allows sorting by id. |
order | string | no | desc | Sort order: asc, desc. |
page | int | no | 1 | The page number. |
pageSize | int | no | 10 | The size of per page, 0 for no limited. |
projectName | string | yes | The name of project. | |
imageName | string | no | Image name for filtering result. |
...
Code Block | ||
---|---|---|
| ||
GET /v1/repository/image Response: { "data": [ { "projectName": "test", "public": false, "imageName": "test/test-demo1", "imageAddress": "registry.dcdn.baidu.com/test/test-demo1", "createTime": 1551758321, "updateTime": 1551758321 }, { "projectName": "test2", "public": false, "imageName": "test2/test-demo2", "imageAddress": "registry.dcdn.baidu.com/test2/test-demo2", "createTime": 1551758321, "updateTime": 1551758321 } ], "total": 2, "code": 200, "message": "success" } |
Get Tag of Image
GET /v1/repository/image/tag?imageName=[imageName]
Description
List tags under the specific image name.
...
Code Block | ||
---|---|---|
| ||
GET /v1/repository/image/tag?imageName=test/demo1 { "data": [ { "tag": "latest", "imageAddress": "registry.dcdn.baidu.com/test/test-demo1", "createTime": 1551758321, "updateTime": 1551758321 }, { "tag": "v1", "imageAddress": "registry.dcdn.baidu.com/test/test-demo1", "createTime": 1551758321, "updateTime": 1551758321 } ], "total": 2, "code": 200, "message": "success" } |
Delete Image
DELETE /v1/repository/image
Description
Delete multiple images specified by name.
...
Delete Tag of Image
DELETE /v1/repository/image/tag
Description
Delete the image specified by name and tags.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
tag | [ ]string | yes | tags of image that needs to be removed | |
imageName | string | yes | name of image that needs to be removed |
...
Name | Type | Description |
---|---|---|
projectId | int | Project ID. |
projectName | string | The name of the project |
createTime | string | The creation time of the project. |
updateTime | string | The update time of the project. |
public | bool | The public status of the project. |
imageCount | int | The count of the images under this project. |
total | int | Total number of the projects. |
...
Name | Type | Required | Default | Description |
---|---|---|---|---|
projectName | string | yes | The name of project. | |
public | bool | yes | The public status of the project. |
Response code
Code | Description |
---|---|
201 | Project created successfully. |
400 | Unsatisfied with constraints of the project creation. |
401 | User need to log in first. |
409 | Project name already exists. |
415 | The Media Type of the request is not supported, it has to be "application/json" |
500 | Unexpected internal errors. |
...
Code Block | ||
---|---|---|
| ||
GET /v1/repository/third/repo1 Response: { "data": { "repositoryId":"yq01", "address":"xxzxsdsdsds", "user":"ddddddd" }, "code": 200, "message": "Success" } |
Application Management
Create Application
POST /v1/app
Parameters
Name | Type | Required | Description |
---|---|---|---|
appName | string | yes | The name of applicaton |
deployType | string | yes | Deployment mode: Only deployment or daemonset can be set |
image | string | yes | Image repository with specified tag. |
version | string | yes | Main version with format x.x, for example 1.1. |
repositoryId | string | no | The ID of repository whose secret can be used to pull docker image. |
port | array | yes | The exposed port. |
command | string | no | Start command line. |
volume | array | no | Volume information. |
env | array | no | Executing environment. |
replicas | uint32 | no | Default replicas. Effective only at deployment. |
minReplicas | uint32 | no | Minimal replicas. Effective only at deployment. |
maxReplicas | uint32 | no | Maximun replicas. Effective only at deployment. |
minCPU | uint32 | yes | Minimal cpu (%) |
maxCPU | uint32 | yes | Maximun cpu(%) |
GPU | uint32 | no | GPU count |
isHPA | bool | yes | Allow to use horizontal pod autoscaler |
targetCPUUtilization | uint32 | yes | CPU utilization which will trigger autoscale |
targetMemUtilization | uint32 | yes | CPU utilization which will trigger autoscale |
minMemory | uint32 | yes | Minimal memory (MB) |
maxMemory | uint32 | yes | Maximun memory (MB) |
maxUnavailable | uint32 | yes | Max unavailable pod |
maxSurge | uint32 | yes | max surge pod |
minReadySeconds | uint32 | yes | min ready seconds for updating |
Example
Code Block | ||||
---|---|---|---|---|
| ||||
POST /v1/app
Body:
{
"appName": "nginx1",
"deployType": "deployment",
"image": "nginx:latest",
"version": "1.2",
"repositoryId": "repo1",
"replicas": 10,
"port": [
{"port": 8080, "hostPort": 9090}],
"command": "",
"volume": [
{"path": "/host/usr/bin", "hostPath": "/usr/bin", "readOnly": true},
{"path": "/host/usr/sbin", "hostPath": "/usr/sbin", "readOnly": true} ],
"env": [
{"name": "NGINX_PATH", "value": "/usr/share/nginx/" } ],
"minReplicas": 2,
"maxReplicas": 20,
"minCPU": 10,
"maxCPU": 200,
"isHPA": true,
"targetCPUUtilization": 100,
"targetMemUtilization": 150,
"minMemory": 100,
"maxMemory": 200,
"maxUnavailable": 1,
"maxSurge": 1,
"minReadySeconds": 10,
}
Response:
{
"code": 200,
"message": "success"
} |
Delete Application
DELETE /v1/app
Parameters
Name | Type | Required | Description |
---|---|---|---|
appId | [ ]int | yes | The IDs of application |
Example
Code Block | ||
---|---|---|
| ||
DELETE /v1/app
{
"appId": [1,2,3,4]
} |
List Applications
GET /v1/app
Description
List applications.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
pageSize | int | no | 10 | The size of per page, 0 for limited. |
page | int | no | 1 | The page number |
appName | string | no | application name for filtering result | |
appNameMode | string | no | partial | the filter mode: strict, partial, prefix |
version | string | no | version |
Example
Code Block | ||
---|---|---|
| ||
Get /v1/app
{
"apps": [ {
"id": 1,
"appName": "nginx1",
"status": 1,
"deployType": "deployment",
"image": "nginx:latest",
"projectName": "proj1",
"repositoryId": "repo1",
"version": "1.2.3.4",
"replicas": 10,
"port": [
{"port": 8080, "hostPort": 9090}],
"command": "",
"volume": [
{"path": "/host/usr/bin", "hostPath": "/usr/bin", "readOnly": true},
{"path": "/host/usr/sbin", "hostPath": "/usr/sbin", "readOnly": true} ],
"dependence": [
{"name": "nginx", "service": "xxxx", "port": 9090 } ],
"env": [
{"name": "NGINX_PATH", "value": "/usr/share/nginx/" } ],
"minReplicas": 2,
"maxReplicas": 20,
"minCPU": 0.1,
"maxCPU": 2,
"GPU": 2,
"isHPA": true,
"targetCPUUtilization": 1,
"targetMemUtilization": 150,
"minMemory": 100,
"maxMemory": 200,
"maxUnavailable": 1,
"maxSurge": 1,
"minReadySeconds": 10,
"createTime": 1551758321,
"updateTime": 1551758321},
]
"total": 1,
"code": 200,
"message": "Success"
} |
Get Application
GET /v1/app/id/{appId}
Description
Return specified application information by ID.
Parameters
Name | Type | Required | Description |
---|---|---|---|
appId | int | no | The ID of application |
Example
Code Block | ||
---|---|---|
| ||
GET /v1/app/id/1
{
"data": {
"id": 1,
"appName": "nginx1",
"status": 1,
"deployType": "deployment",
"image": "nginx",
"projectName": "proj1",
"repositoryId": "repo1",
"version": "1.2.3",
"replicas": 10,
"port": [
{"port": 8080, "hostPort": 9090}],
"command": "",
"volume": [
{"path": "/host/usr/bin", "hostPath": "/usr/bin", "readOnly": true},
{"path": "/host/usr/sbin", "hostPath": "/usr/sbin", "readOnly": true} ],
"dependence": [
{"name": "nginx", "service": "xxxx", "port": 9090 } ],
"env": [
{"name": "NGINX_PATH", "value": "/usr/share/nginx/" } ],
"minReplicas": 2,
"maxReplicas": 20,
"minCPU": 0.1,
"maxCPU": 2,
"GPU": 1,
"isHPA": true,
"targetCPUUtilization": 1,
"targetMemUtilization": 150,
"minMemory": 100,
"maxMemory": 200,
"maxUnavailable": 1,
"maxSurge": 1,
"minReadySeconds": 10,
"createTime": 1551758321,
"updateTime": 1551758321
},
"code": 200,
"message": "Success"
} |
Upload Helm Chart to Create Application
POST /v1/app/chart
Description
Upload a helm chart tar file to create the application. The request type must be multipart/form-data.
Parameters
Name | Type | Required | Description |
---|---|---|---|
appName | string | yes | The name of application |
version | string | yes | version |
chart | file | yes | the chart file needs to be upload |
Example
Code Block |
---|
POST /v1/app/chart
appName=test
version=1.1
chart=@file
curl 0.0.0.0/v1/app/chart -F "version=1.2" -F "appName=test1" -F "chart=@file" |
Deployment Management
Create Deployment
POST /v1/deploy
Description
Deploy the application to specified cluster.
Parameters
Name | Type | Required | Description |
---|---|---|---|
deployName | string | yes | The unique name of deployment. |
appName | string | yes | The application that will be deployed. |
version | string | yes | The version of application. |
cluster | string | yes | The label of cluster that will install the application, default all cluster. |
nodeLabel | string | yes | The label of node that will install the application, default all node. |
comment | string | yes | The comment about deployment. |
Example
Code Block | ||
---|---|---|
| ||
POST /v1/deploy/install
Body:
{
"deployName": "nginx1",
"appName": "nginx1",
"version": "1.1.1.1",
"cluster": "cluster1",
"nodeLabel": "node1",
"comment": ""
}
Response:
{
"code": 200,
"message": "success"
} |
Delete Deployment
DELETE /v1/deploy/{deployName}
Description
Delete deployment by name.
Parameters
Name | Type | Required | Description |
---|---|---|---|
deployName | string | yes | The name of deployment. |
Example
Code Block | ||
---|---|---|
| ||
DELETE /v1/deploy/deploy1
Response:
{
"code": 200,
"message": "success"
} |
Upgrade Deployment
POST /v1/deploy/id/{deployId}
Description
Upgrade the deployment to specified version.
Parameters
Name | Type | Required | Description |
---|---|---|---|
deployId | int | yes | The ID of deployment. |
version | string | yes | The version of application that needs to be upgraded to. |
comment | string | no | The comment about upgrade. |
Example
Code Block | ||
---|---|---|
| ||
POST /v1/deploy/id/1
Body:
{
"version": "1.1.1.2"
}
Response:
{
"code": 200,
"message": "success"
} |
List Deployment
GET /v1/deploy
Description
List all deployments.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
pageSize | int | no | 10 | The size of per page, 0 for no limited. |
page | int | no | 1 | The page number |
field | string | no | Fields that need be presented, default all informations. | |
appName | string | no | The name of application for filtering result. | |
appNameMode | string | no | partial | The mode of filter: strict, partial, prefix. |
editable | string | no | all | The flag, which indicates if the deployment can be update now, is used for filtering result. The value can be: true, false, or all. |
running | string | no | all | The running status of deployment for filtering result. The value can be: true, or all. |
Response Parameters
Name | Type | Description |
---|---|---|
id | int32 | ID |
deployName | string | The name of deployment. |
appName | string | The name of application. |
version | string | The version of application. |
cluster | string | The cluster that have deployed. |
nodeLabel | string | The node that have deployed. |
comment | string | The comment about deployment. |
deployType | int32 | The deployment type: 1: new deployment, 2: upgrading, 3: rollbacking, 4: deleted |
status | int32 | The status of deployment:0: pending 1: Approved 2: Disapproved 3:Processing 4:Deploying 5: Success 6: Partial success 7: Failed 8: Internal error 9: Deleted |
createTime | int32 | The creation time of deployment. |
updateTime | int32 | The update time of deployment. |
editable | bool | The flag that indicates if the deployment can be update now. |
errorMessage | string | The detailed deployment status which contains the count of running pod and error pod. |
auditComment | string | The comment about audit. |
Example
Code Block | ||
---|---|---|
| ||
GET /v1/deploy?pageSize=10&page=1
Response:
{
"data": [ {
"id": 1,
"deployName": "nginx1",
"appName": "nginx1",
"version": "1.1.1.1",
"cluster": "cluster1",
"nodeLabel": "node1",
"deployType": 1
"status": 6,
"errorMessage": "{\"running\": 10, \"error\": 3, \"total\": 13}",
"comment": ""
"editable": true,
"createTime": 1551758321,
"updateTime": 1551758321}
],
"total": 1
} |
Rollback Deployment
PUT /v1/deploy/id/{deployId}
Description
Rollback the deployment to previous version.
Parameters
Name | Type | Required | Description |
---|---|---|---|
deployId | int | yes | The ID of deployment. |
version | string | yes | The version that needs to rollback to. |
comment | string | yes | The comment about rollback. |
Example
Code Block | ||
---|---|---|
| ||
PUT /v1/deploy/id/1
Body:
{
"version": "1.1.1.2",
"comment": ""
}
Response:
{
"code": 200,
"message": "success"
} |
Get Deployment
GET /v1/deploy/id/{deployId}
Description
Get specified deployment information by ID.
Parameters
Name | Type | Required | Description |
---|---|---|---|
field | string | no | The fields that need to be presented, default all information without history version information. But when field=historyVersion, the API will return all versions of deployed application. |
Response parameters
Same as the API of List Deployment
Code Block | ||
---|---|---|
| ||
GET /v1/deploy/id/1
Response:
{
"data" : {
"id": 1,
"deployName": "nginx1",
"appName": "nginx1",
"version": "1.1.1.2",
"cluster": "cluster1",
"nodeLabel": "node1",
"status": 6,
"comment": "",
"errorMessage": "{\"running\": 10, \"error\": 3, \"total\": 13}",
"deployType": 1,
"createTime": 1551758321,
"updateTime": 1551758321
}
}
} |
Delete Deployment
DELETE /v1/deploy/id/{deployId}
Parameters
Name | Type | Required | Description |
---|---|---|---|
deployId | int | yes | The ID of deployment that needs to be removed |
Example
Code Block | ||
---|---|---|
| ||
DELETE /v1/deploy/id/1 |
Audit Deployment
PUT /v1/admin/deploy
Description
Audit the deployment created by general user. This can only be done by general administrator and system administrator.
Parameters
Name | Type | Required | Description |
---|---|---|---|
id | int | yes | ID |
status | int | yes | The status of deployment |
comment | string | yes | The comment of |
Example
Code Block |
---|
POST /v1/admin/deploy
Body:
{
"id": 123456,
"status": 0,
"comment": "xxxx"
} |
List Audit List of Deployment
GET /v1/admin/deploy
Description
List deployment that needs to be audited. This can only be done by general administrator and system administrator.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
orderBy | string | 否 | id | orderBy allows sorting by id. |
order | string | 否 | desc | order sort: asc,desc |
businessName | string | 否 | The name of business for filtering result | |
page | int | 否 | 1 | The page number |
pageSize | int | 否 | 10 | The page size of per page |
Response code
Code | Description |
---|---|
200 | Successfully. |
422 | Unprocessable Entity |
500 | Unexpected internal errors |
Response parameters
Name | Type | Description |
---|---|---|
id | int | ID |
businessName | string | The name of business. |
appName | string | The name of application. |
version | string | The version of application |
cluster | string | The cluster that will be deployed to. |
deployId | int | The ID of deployment. |
deployType | int | The type of deployment, 1: new deployment, 2: upgrading, 3: rollbacking, 4: deleted |
status | int | The status of audit. |
comment | string | The comment of audit. |
createTime | int | The create time. |
updateTime | int | The time of the audit. |
Example
Code Block | ||
---|---|---|
| ||
GET /v1/admin/deploy
Response:
{
"data": [
{
"id": 6878,
"businessName": "a",
"appName": "dsdar2",
"version": "1.2.1",
"cluster":"bjct",
"deployType":1,
"status":0,
"comment":"no pass",
"createTime": 1551758321,
"updateTime": 1551758321
}
],
"total": 1,
"code": 200,
"message": "success"
} |