更新时间:2024-04-14 GMT+08:00
分享

创建应用模板版本

功能介绍

创建一个应用模板版本

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v2/{project_id}/edgemgr/apps/{app_id}/versions

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

app_id

String

应用模板ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式),默认取值为“application/json”

X-Auth-Token

String

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

ief-instance-id

String

铂金版实例ID,专业版实例为空值

表3 请求Body参数

参数

是否必选

参数类型

描述

version

VersionDetail object

应用模板版本配置

表4 VersionDetail

参数

是否必选

参数类型

描述

version

String

应用版本号

image_url

String

镜像存储地址

envs

Array of Env objects

环境变量

volumes

Array of Volumes objects

卷配置

configs

AppConfigs object

容器特殊参数

resources

Resources object

资源配额

arch

String

架构

command

Array of strings

启动命令

args

Array of strings

参数

liveness_probe

ProbeDetail object

工作负载存活探针

readiness_probe

ProbeDetail object

工作负载业务探针

npu_type

String

NPU类型,支持D310、D310B,支持填写:

  • D310:D310类型

  • D310B:D310B类型

  • 不填表示为D310类型。

表5 Env

参数

是否必选

参数类型

描述

name

String

环境变量的key,由大小写字母或下划线开头,由数字、大小写字母、下划线组成,最大长度2048个字符,不允许重复

value

String

环境变量的value,最大长度20480个字符。value、value_from和field_path必须三选一使用。

value_from

ValueFrom object

环境变量可使用配置项和密钥导入

field_path

String

该参数目前只支持赋值"status.hostIP",即引用边缘节点的IP地址作为环境变量。

表6 ValueFrom

参数

是否必选

参数类型

描述

secret

Secrets object

环境变量引用密钥时使用。使用ValueFrom时,secret与configmap必须二选一。

configmap

ConfigsMap object

环境变量引用配置项时使用。

表7 Secrets

参数

是否必选

参数类型

描述

name

String

密钥的名称

key

String

密钥的属性名

表8 ConfigsMap

参数

是否必选

参数类型

描述

name

String

配置项的名称

key

String

配置项的属性名

表9 Volumes

参数

是否必选

参数类型

描述

name

String

卷名称,小写字母或数字,最长63个字符

type

String

卷的类型,支持configMap,secret,emptyDir,hostPath

source

String

卷来源,type为hostPath时输入路径,要求以/开头,后面可包含中划线,反斜杠,下划线,点号,字母,数字; secret时输入secret名称,configMap时输入configMap名称,emptyDir时输入disk或memory

destination

String

卷挂载路径,必须是合法的路径

read_only

Boolean

读写权限,configMap和secret类型只支持读权限

default_mode

Integer

挂载的文件权限,仅configMap和secret类型生效,默认为0644,支持填写十进制和八进制参数

表10 AppConfigs

参数

是否必选

参数类型

描述

privileged

Boolean

默认为false,表示是否开启特权模式

run_as_user

Integer

容器运行用户ID,输入范围为0~65534的整数

host_network

Boolean

默认为true,其中true表示主机网络,而false表示端口映射

restart_policy

String

应用实例重启模式:

  • Always:当容器终止退出后,总是重启容器

  • Onfailure:容器异常退出(退出码非0)时才重启容器

  • Never:容器终止退出后,不重启容器

ports

Array of Ports objects

容器端口映射值

host_pid

Boolean

应用实例是否与主机共PID命名空间,默认值false

dns_policy

String

应用实例DNS策略,可选值Default、ClusterFirst、ClusterFirstWithHostNet,默认为Default。应用实例启用主机网络时只能选填Default、ClusterFirstWithHostNet,不启用主机网络时只能选填Default、ClusterFirst

表11 Ports

参数

是否必选

参数类型

描述

container_port

Integer

构成一堆映射的容器端口

host_port

Integer

构成一对映射的物理机对应网卡端口

host_ip

String

对应网卡地址

表12 Resources

参数

是否必选

参数类型

描述

limits

LimitsRequests object

允许容器使用的最大资源

requests

LimitsRequests object

容器需要使用的最小资源

表13 LimitsRequests

参数

是否必选

参数类型

描述

cpu

Float

cpu核数,大于等于0.01,最大1000;请求不需要带单位

memory

Float

内存大小,单位兆,大于等于0.01,最大1024000。注意:内存的limits值最小为4;请求不需要带单位

gpu

Float

Gpu显存大小,单位兆,大于等于0.01,最大1024000;请求不需要带单位

npu

Integer

Npu个数,大于0,最大1000;请求不需要带单位

表14 ProbeDetail

参数

是否必选

参数类型

描述

exec_command

String

执行探测的命令行命令,长度1-10240内的字符串

http_get

HttpGetDetail object

执行http探测

initial_delay_seconds

Integer

表示从工作负载启动后从多久开始探测,大于0且不大于3600的整数,默认为10

timeout_seconds

Integer

表示探测超时时间,大于0且不大于3600的整数,默认为1

表15 HttpGetDetail

参数

是否必选

参数类型

描述

path

String

必须要以/开头,构造结果为:协议类型://主机地址:端口路径

port

Integer

探测的http端口,1到65535之间的整数

host

String

请求的主机地址,默认为容器IP

scheme

String

协议类型,HTTP或HTTPS,默认HTTP

响应参数

状态码: 201

表16 响应Body参数

参数

参数类型

描述

version

AppVersionDetail object

app详情

表17 AppVersionDetail

参数

参数类型

描述

id

String

应用版本ID

version

String

应用版本号

created_at

String

创建时间

updated_at

String

更新时间 只有更新后才会出现该字段

project_id

String

项目ID

image_url

String

镜像存储地址

envs

Array of Env objects

环境变量

volumes

Array of Volumes objects

卷配置

configs

AppConfigs object

容器特殊参数

resources

Resources object

容器使用的资源

arch

String

架构

command

Array of strings

启动命令

args

Array of strings

参数

liveness_probe

ProbeDetail object

工作负载存活探针

readiness_probe

ProbeDetail object

工作负载业务探针

npu_type

String

NPU类型,支持D310、D310B,支持填写:

  • D310:D310类型

  • D310B:D310B类型

  • 不填表示为D310类型。

表18 Env

参数

参数类型

描述

name

String

环境变量的key,由大小写字母或下划线开头,由数字、大小写字母、下划线组成,最大长度2048个字符,不允许重复

value

String

环境变量的value,最大长度20480个字符。value、value_from和field_path必须三选一使用。

value_from

ValueFrom object

环境变量可使用配置项和密钥导入

field_path

String

该参数目前只支持赋值"status.hostIP",即引用边缘节点的IP地址作为环境变量。

表19 ValueFrom

参数

参数类型

描述

secret

Secrets object

环境变量引用密钥时使用。使用ValueFrom时,secret与configmap必须二选一。

configmap

ConfigsMap object

环境变量引用配置项时使用。

表20 Secrets

参数

参数类型

描述

name

String

密钥的名称

key

String

密钥的属性名

表21 ConfigsMap

参数

参数类型

描述

name

String

配置项的名称

key

String

配置项的属性名

表22 Volumes

参数

参数类型

描述

name

String

卷名称,小写字母或数字,最长63个字符

type

String

卷的类型,支持configMap,secret,emptyDir,hostPath

source

String

卷来源,type为hostPath时输入路径,要求以/开头,后面可包含中划线,反斜杠,下划线,点号,字母,数字; secret时输入secret名称,configMap时输入configMap名称,emptyDir时输入disk或memory

destination

String

卷挂载路径,必须是合法的路径

read_only

Boolean

读写权限,configMap和secret类型只支持读权限

default_mode

Integer

挂载的文件权限,仅configMap和secret类型生效,默认为0644,支持填写十进制和八进制参数

表23 AppConfigs

参数

参数类型

描述

privileged

Boolean

默认为false,表示是否开启特权模式

run_as_user

Integer

容器运行用户ID,输入范围为0~65534的整数

host_network

Boolean

默认为true,其中true表示主机网络,而false表示端口映射

restart_policy

String

应用实例重启模式:

  • Always:当容器终止退出后,总是重启容器

  • Onfailure:容器异常退出(退出码非0)时才重启容器

  • Never:容器终止退出后,不重启容器

ports

Array of Ports objects

容器端口映射值

host_pid

Boolean

应用实例是否与主机共PID命名空间,默认值false

dns_policy

String

应用实例DNS策略,可选值Default、ClusterFirst、ClusterFirstWithHostNet,默认为Default。应用实例启用主机网络时只能选填Default、ClusterFirstWithHostNet,不启用主机网络时只能选填Default、ClusterFirst

表24 Ports

参数

参数类型

描述

container_port

Integer

构成一堆映射的容器端口

host_port

Integer

构成一对映射的物理机对应网卡端口

host_ip

String

对应网卡地址

表25 Resources

参数

参数类型

描述

limits

LimitsRequests object

允许容器使用的最大资源

requests

LimitsRequests object

容器需要使用的最小资源

表26 LimitsRequests

参数

参数类型

描述

cpu

Float

cpu核数,大于等于0.01,最大1000;请求不需要带单位

memory

Float

内存大小,单位兆,大于等于0.01,最大1024000。注意:内存的limits值最小为4;请求不需要带单位

gpu

Float

Gpu显存大小,单位兆,大于等于0.01,最大1024000;请求不需要带单位

npu

Integer

Npu个数,大于0,最大1000;请求不需要带单位

表27 ProbeDetail

参数

参数类型

描述

exec_command

String

执行探测的命令行命令,长度1-10240内的字符串

http_get

HttpGetDetail object

执行http探测

initial_delay_seconds

Integer

表示从工作负载启动后从多久开始探测,大于0且不大于3600的整数,默认为10

timeout_seconds

Integer

表示探测超时时间,大于0且不大于3600的整数,默认为1

表28 HttpGetDetail

参数

参数类型

描述

path

String

必须要以/开头,构造结果为:协议类型://主机地址:端口路径

port

Integer

探测的http端口,1到65535之间的整数

host

String

请求的主机地址,默认为容器IP

scheme

String

协议类型,HTTP或HTTPS,默认HTTP

请求示例

创建一个应用模板版本,版本号为v2,镜像地址为“edge-demo-app:latest”,存储卷类型为hostPath,容器网络为主机网络。

{
  "version" : {
    "version" : "v2",
    "image_url" : "edge-demo-app:latest",
    "resources" : {
      "limits" : {
        "cpu" : 0.1,
        "memory" : 1024,
        "gpu" : 3.9
      },
      "requests" : {
        "cpu" : 0.1,
        "memory" : 1024,
        "gpu" : 3.9
      }
    },
    "envs" : [ {
      "name" : "key",
      "value" : "name"
    } ],
    "volumes" : [ {
      "name" : "test",
      "type" : "hostPath",
      "source" : "/tmp",
      "destination" : "/tmp0",
      "read_only" : true
    } ],
    "configs" : {
      "privileged" : true,
      "host_network" : true,
      "restart_policy" : "Always"
    }
  }
}

响应示例

状态码: 201

ok

{
  "version" : {
    "envs" : [ {
      "name" : "key",
      "value" : "name"
    } ],
    "created_at" : "2018-07-16T14:16:28",
    "updated_at" : null,
    "version" : "v2",
    "image_url" : "edge-demo-app:latest",
    "npu_type" : "",
    "volumes" : [ {
      "read_only" : true,
      "source" : "/tmp",
      "destination" : "/tmp0",
      "type" : "hostPath",
      "name" : "test"
    } ],
    "configs" : {
      "host_network" : true,
      "restart_policy" : "Always",
      "privileged" : true
    },
    "project_id" : "{project_id}",
    "id" : "9537b861-f4e0-40e5-8b79-da842e0d3ea2",
    "resources" : {
      "requests" : {
        "gpu" : 3.9,
        "cpu" : 0.1,
        "memory" : 1024
      },
      "limits" : {
        "gpu" : 3.9,
        "cpu" : 0.1,
        "memory" : 1024
      }
    }
  }
}

状态码

状态码

描述

201

ok

错误码

请参见错误码

相关文档