创建AddonInstance
功能介绍
根据提供的插件模板,安装插件实例。
URI
POST /api/v3/addons
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Content-Type | 是 | String | 消息体的类型(格式) |
| X-Auth-Token | 是 | String | 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| kind | 是 | String | API类型,固定值“Addon”,该值不可修改,该字段传入无效。 |
| apiVersion | 是 | String | API版本,固定值“v3”,该值不可修改,该字段传入无效。 |
| metadata | 是 | AddonMetadata object | 基本信息,为集合类的元素类型,包含一组由不同名称定义的属性 |
| spec | 是 | InstanceRequestSpec object | spec是集合类的元素类型,内容为插件实例安装/升级的具体请求信息 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| uid | 否 | String | 唯一id标识 |
| name | 否 | String | 插件名称 |
| alias | 否 | String | 插件别名 |
| labels | 否 | Map<String,String> | 插件标签,key/value对格式,接口保留字段,填写不会生效 |
| annotations | 否 | Map<String,String> | 插件注解,由key/value组成
|
| updateTimestamp | 否 | String | 更新时间 |
| creationTimestamp | 否 | String | 创建时间 |
响应参数
状态码: 201
| 参数 | 参数类型 | 描述 |
|---|---|---|
| kind | String | API类型,固定值“Addon”,该值不可修改。 |
| apiVersion | String | API版本,固定值“v3”,该值不可修改。 |
| metadata | AddonMetadata object | 基本信息,为集合类的元素类型,包含一组由不同名称定义的属性 |
| spec | InstanceSpec object | spec是集合类的元素类型,内容为插件实例具体信息,实例的详细描述主体部分都在spec中给出 |
| status | AddonInstanceStatus object | 插件实例状态 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| uid | String | 唯一id标识 |
| name | String | 插件名称 |
| alias | String | 插件别名 |
| labels | Map<String,String> | 插件标签,key/value对格式,接口保留字段,填写不会生效 |
| annotations | Map<String,String> | 插件注解,由key/value组成
|
| updateTimestamp | String | 更新时间 |
| creationTimestamp | String | 创建时间 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| clusterID | String | 集群id |
| version | String | 插件模板版本号,如1.0.0 |
| addonTemplateName | String | 插件模板名称,如coredns |
| addonTemplateType | String | 插件模板类型 |
| addonTemplateLogo | String | 插件模板logo图片的地址 |
| addonTemplateLabels | Array of strings | 插件模板所属类型 |
| description | String | 插件模板描述 |
| values | Map<String,Object> | 插件模板安装参数(各插件不同),请根据具体插件模板信息填写安装参数。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| status | String | 插件实例状态, 取值如下
|
| Reason | String | 插件安装失败原因 |
| message | String | 安装错误详情 |
| targetVersions | Array of strings | 此插件版本,支持升级的集群版本 |
| currentVersion | Versions object | 当前插件实例使用的具体插件版本信息 |
| isRollbackable | Boolean | 是否支持回滚到插件升级前的插件版本 |
| previousVersion | String | 插件升级或回滚前的版本 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| version | String | 插件版本号 |
| input | Object | 插件安装参数 |
| stable | Boolean | 是否为稳定版本 |
| translate | Object | 供界面使用的翻译信息 |
| supportVersions | Array of SupportVersions objects | 支持集群版本号 |
| creationTimestamp | String | 创建时间 |
| updateTimestamp | String | 更新时间 |
请求示例
安装1.17.15版本的coredns插件,插件规格为2500qps,插件实例数指定为2。
{
"kind" : "Addon",
"apiVersion" : "v3",
"metadata" : {
"annotations" : {
"addon.install/type" : "install"
}
},
"spec" : {
"clusterID" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"version" : "1.17.15",
"addonTemplateName" : "coredns",
"values" : {
"basic" : {
"cluster_ip" : "10.247.3.10",
"image_version" : "1.17.15",
"platform" : "linux-amd64",
"swr_addr" : "<Replace_SWR_address>",
"swr_user" : "hwofficial",
"rbac_enabled" : true
},
"flavor" : {
"name" : 2500,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "500m",
"limitsMem" : "512Mi",
"name" : "coredns",
"requestsCpu" : "500m",
"requestsMem" : "512Mi"
} ]
},
"custom" : {
"stub_domains" : { },
"upstream_nameservers" : [ ],
"cluster_id" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"tenant_id" : "0504201b6c80256b2f08c0099f0c8fe4"
}
}
}
} 响应示例
状态码: 201
OK
{
"kind" : "Addon",
"apiVersion" : "v3",
"metadata" : {
"uid" : "b748aaea-a984-11ec-987b-0255ac1000bc",
"name" : "coredns",
"alias" : "coredns",
"creationTimestamp" : "2022-03-22T02:06:41Z",
"updateTimestamp" : "2022-03-22T02:06:41Z"
},
"spec" : {
"clusterID" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"version" : "1.17.15",
"addonTemplateName" : "coredns",
"addonTemplateType" : "helm",
"addonTemplateLogo" : "",
"addonTemplateLabels" : [ "ServiceDiscovery" ],
"description" : "CoreDNS is a DNS server that chains plugins and provides Kubernetes DNS Services",
"values" : {
"basic" : {
"cluster_ip" : "10.247.3.10",
"image_version" : "1.17.15",
"platform" : "linux-amd64",
"rbac_enabled" : true,
"swr_addr" : "",
"swr_user" : "hwofficial"
},
"custom" : {
"cluster_id" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"stub_domains" : { },
"tenant_id" : "0504201b6c80256b2f08c0099f0c8fe4",
"upstream_nameservers" : [ ]
},
"flavor" : {
"name" : 2500,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "500m",
"limitsMem" : "512Mi",
"name" : "coredns",
"requestsCpu" : "500m",
"requestsMem" : "512Mi"
} ]
}
}
},
"status" : {
"status" : "installing",
"Reason" : "",
"message" : "",
"targetVersions" : null,
"currentVersion" : {
"version" : "1.17.15",
"input" : {
"basic" : {
"cluster_ip" : "10.247.3.10",
"image_version" : "1.17.15",
"platform" : "linux-amd64",
"swr_addr" : "",
"swr_user" : "hwofficial"
},
"parameters" : {
"custom" : {
"stub_domains" : "",
"upstream_nameservers" : ""
},
"flavor1" : {
"name" : 2500,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "500m",
"limitsMem" : "512Mi",
"name" : "coredns",
"requestsCpu" : "500m",
"requestsMem" : "512Mi"
} ]
},
"flavor2" : {
"name" : 5000,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "1000m",
"limitsMem" : "1024Mi",
"name" : "coredns",
"requestsCpu" : "1000m",
"requestsMem" : "1024Mi"
} ]
},
"flavor3" : {
"name" : 10000,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "2000m",
"limitsMem" : "2048Mi",
"name" : "coredns",
"requestsCpu" : "2000m",
"requestsMem" : "2048Mi"
} ]
},
"flavor4" : {
"name" : 20000,
"replicas" : 4,
"resources" : [ {
"limitsCpu" : "2000m",
"limitsMem" : "2048Mi",
"name" : "coredns",
"requestsCpu" : "2000m",
"requestsMem" : "2048Mi"
} ]
}
}
},
"stable" : true,
"translate" : {
"en_US" : {
"addon" : {
"changeLog" : "Supported CCE clusters of v1.21.",
"description" : "CoreDNS is a DNS server that chains plugins and provides Kubernetes DNS Services"
},
"description" : {
"Parameters.custom.stub_domains" : "The target nameserver may itself be a Kubernetes service. For instance, you can run your own copy of dnsmasq to export custom DNS names into the ClusterDNS namespace, a JSON map using a DNS suffix key (e.g. “acme.local”) and a value consisting of a JSON array of DNS IPs.",
"Parameters.custom.upstream_nameservers" : "If specified, then the values specified replace the nameservers taken by default from the node’s /etc/resolv.conf. Limits:a maximum of three upstream nameservers can be specified, A JSON array of DNS IPs.",
"Parameters.flavor1.description" : "Concurrent domain name resolution ability - External domain name:2500 qps, Internal domain name:10000 qps",
"Parameters.flavor1.name" : 2500,
"Parameters.flavor2.description" : "Concurrent domain name resolution ability - External domain name:5000 qps, Internal domain name:20000 qps",
"Parameters.flavor2.name" : 5000,
"Parameters.flavor3.description" : "Concurrent domain name resolution ability - External domain name:10000 qps, Internal domain name:40000 qps",
"Parameters.flavor3.name" : 10000,
"Parameters.flavor4.description" : "Concurrent domain name resolution ability - External domain name:20000 qps, Internal domain name:80000 qps",
"Parameters.flavor4.name" : 20000
},
"key" : {
"Parameters.custom.stub_domains" : "stub domain",
"Parameters.custom.upstream_nameservers" : "upstream nameservers"
}
},
"fr_FR" : {
"addon" : {
"changeLog" : "Prise en charge du cluster 1.21.",
"description" : "Un serveur DNS qui enchaîne les plug-ins et fournit des services DNS Kubernetes."
},
"description" : {
"Parameters.custom.stub_domains" : "Le serveur de noms cible peut lui-même être un service Kubernetes. Par exemple, vous pouvez exécuter votre propre copie de dnsmasq pour exporter des noms DNS personnalisés dans l'espace de noms ClusterDNS, une carte JSON à l'aide d'une clé de suffixe DNS (par exemple, «acme.local») et une valeur constituée d'un tableau JSON d'adresses IP DNS.",
"Parameters.custom.upstream_nameservers" : "Si spécifié, les valeurs spécifiées remplacent les serveurs de noms pris par défaut dans le fichier /etc/resolv.conf du nœud. Limites: un maximum de trois serveurs de noms en amont peuvent être spécifiés, un tableau JSON d'adresses IP DNS.",
"Parameters.flavor1.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 2500 qps, Nom de domaine interne: 10000 qp",
"Parameters.flavor1.name" : 2500,
"Parameters.flavor2.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 5000 qps, Nom de domaine interne: 20000 qp",
"Parameters.flavor2.name" : 5000,
"Parameters.flavor3.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 10000 qps, Nom de domaine interne: 40000 qp",
"Parameters.flavor3.name" : 10000,
"Parameters.flavor4.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 20000 qps, Nom de domaine interne: 80000 qp",
"Parameters.flavor4.name" : 20000
},
"key" : {
"Parameters.custom.stub_domains" : "domaine stub",
"Parameters.custom.upstream_nameservers" : "serveurs de noms en amont"
}
},
"zh_CN" : {
"addon" : {
"changeLog" : "",
"description" : ""
},
"description" : {
"Parameters.custom.stub_domains" : "",
"Parameters.custom.upstream_nameservers" : "",
"Parameters.flavor1.description" : "",
"Parameters.flavor1.name" : 2500,
"Parameters.flavor2.description" : "",
"Parameters.flavor2.name" : 5000,
"Parameters.flavor3.description" : "",
"Parameters.flavor3.name" : 10000,
"Parameters.flavor4.description" : "",
"Parameters.flavor4.name" : 20000
},
"key" : {
"Parameters.custom.stub_domains" : "",
"Parameters.custom.upstream_nameservers" : ""
}
}
},
"supportVersions" : null,
"creationTimestamp" : "2021-12-14T13:43:15Z",
"updateTimestamp" : "2022-01-11T14:32:10Z"
}
}
} 状态码
| 状态码 | 描述 |
|---|---|
| 201 | OK |
错误码
请参见错误码。