功能介绍
更新插件实例的功能。
调用方法
请参见如何调用API。
URI
PUT /api/v3/addons/{id}
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
是 |
String |
插件实例id |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
消息体的类型(格式) |
X-Auth-Token |
是 |
String |
调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
kind |
是 |
String |
API类型,固定值“Addon”,该值不可修改,该字段传入无效。 |
apiVersion |
是 |
String |
API版本,固定值“v3”,该值不可修改,该字段传入无效。 |
metadata |
是 |
基本信息,为集合类的元素类型,包含一组由不同名称定义的属性 |
|
spec |
是 |
spec是集合类的元素类型,内容为插件实例安装/升级的具体请求信息 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
uid |
否 |
String |
唯一id标识 |
name |
否 |
String |
插件名称 |
alias |
否 |
String |
插件别名 |
labels |
否 |
Map<String,String> |
插件标签,key/value对格式,接口保留字段,填写不会生效 |
annotations |
否 |
Map<String,String> |
插件注解,由key/value组成
|
updateTimestamp |
否 |
String |
更新时间 |
creationTimestamp |
否 |
String |
创建时间 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
kind |
String |
API类型,固定值“Addon”,该值不可修改。 |
apiVersion |
String |
API版本,固定值“v3”,该值不可修改。 |
metadata |
基本信息,为集合类的元素类型,包含一组由不同名称定义的属性 |
|
spec |
spec是集合类的元素类型,内容为插件实例具体信息,实例的详细描述主体部分都在spec中给出 |
|
status |
插件实例状态 |
参数 |
参数类型 |
描述 |
---|---|---|
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 |
当前插件实例使用的具体插件版本信息 |
|
isRollbackable |
Boolean |
是否支持回滚到插件升级前的插件版本 |
previousVersion |
String |
插件升级或回滚前的版本 |
请求示例
更新everest插件,更新后的插件版本为2.1.30。
{ "kind" : "Addon", "apiVersion" : "v3", "metadata" : { "annotations" : { "addon.upgrade/type" : "upgrade" } }, "spec" : { "clusterID" : "*****", "version" : "2.1.30", "addonTemplateName" : "everest", "values" : { "basic" : { "bms_url" : "*****", "driver_init_image_version" : "2.1.30", "ecsEndpoint" : "*****", "everest_image_version" : "2.1.30", "evs_url" : "*****", "iam_url" : "*****", "ims_url" : "*****", "obs_url" : "*****", "platform" : "linux-amd64", "sfs30_url" : "*****", "sfs_turbo_url" : "*****", "sfs_url" : "*****", "supportHcs" : false, "swr_addr" : "*****", "swr_user" : "hwofficial", "rbac_enabled" : true, "cluster_version" : "v1.23" }, "flavor" : { "description" : "High avaiable", "name" : "HA", "replicas" : 2, "resources" : [ { "limitsCpu" : "250m", "limitsMem" : "2000Mi", "name" : "everest-csi-controller", "requestsCpu" : "250m", "requestsMem" : "1500Mi" }, { "limitsCpu" : "500m", "limitsMem" : "300Mi", "name" : "everest-csi-driver", "requestsCpu" : "100m", "requestsMem" : "300Mi" } ], "category" : [ "CCE", "Turbo" ] }, "custom" : { "cluster_id" : "*****", "csi_attacher_detach_worker_threads" : "60", "csi_attacher_worker_threads" : "60", "default_vpc_id" : "*****", "disable_auto_mount_secret" : false, "enable_node_attacher" : true, "flow_control" : { }, "multiAZEnabled" : false, "over_subscription" : "80", "project_id" : "*****", "volume_attaching_flow_ctrl" : "0" } } } }
响应示例
状态码: 200
OK
{ "kind" : "Addon", "apiVersion" : "v3", "metadata" : { "uid" : "******", "name" : "everest", "alias" : "everest", "creationTimestamp" : "2023-07-03T10:57:43Z", "updateTimestamp" : "2023-07-03T11:24:05Z" }, "spec" : { "clusterID" : "******", "version" : "2.1.30", "addonTemplateName" : "everest", "addonTemplateType" : "helm", "addonTemplateLogo" : "******", "addonTemplateLabels" : [ "Storage" ], "description" : "", "values" : { "basic" : { "bms_url" : "******", "cluster_version" : "v1.23", "driver_init_image_version" : "2.1.30", "ecsEndpoint" : "******", "everest_image_version" : "2.1.30", "evs_url" : "******", "iam_url" : "******", "ims_url" : "******", "obs_url" : "******", "platform" : "linux-amd64", "rbac_enabled" : true, "sfs30_url" : "******", "sfs_turbo_url" : "******", "sfs_url" : "******", "supportHcs" : false, "swr_addr" : "******", "swr_user" : "hwofficial" }, "custom" : { "cluster_id" : "******", "cluster_version" : "v1.23.8-r0", "csi_attacher_detach_worker_threads" : "60", "csi_attacher_worker_threads" : "60", "default_vpc_id" : "******", "disable_auto_mount_secret" : false, "enable_node_attacher" : false, "flow_control" : { }, "multiAZEnabled" : false, "over_subscription" : "80", "project_id" : "******", "volume_attaching_flow_ctrl" : "0" }, "flavor" : { "category" : [ "CCE", "Turbo" ], "description" : "Has only one instance", "name" : "Single", "replicas" : 1, "resources" : [ { "limitsCpu" : "250m", "limitsMem" : "600Mi", "name" : "everest-csi-controller", "requestsCpu" : "250m", "requestsMem" : "600Mi" }, { "limitsCpu" : "100m", "limitsMem" : "300Mi", "name" : "everest-csi-driver", "requestsCpu" : "100m", "requestsMem" : "300Mi" } ] }, "systemAutoInject" : { "cluster" : { "clusterID" : "******", "clusterNetworkMode" : "vpc-router", "clusterVersion" : "v1.23.8-r0" }, "user" : { "projectID" : "******" } } } }, "status" : { "status" : "upgrading", "Reason" : "addon upgrading", "message" : "", "targetVersions" : null, "isRollbackable" : false, "currentVersion" : { "version" : "2.1.30", "input" : { "basic" : { "bms_url" : "******", "driver_init_image_version" : "2.1.30", "ecsEndpoint" : "******", "everest_image_version" : "2.1.30", "evs_url" : "******", "iam_url" : "******", "ims_url" : "******", "obs_url" : "******", "platform" : "******", "sfs30_url" : "******", "sfs_turbo_url" : "******", "sfs_url" : "******", "supportHcs" : false, "swr_addr" : "******", "swr_user" : "hwofficial" }, "parameters" : { "common" : { "defaultVPCId" : 1234567 }, "custom" : { "cluster_id" : "", "csi_attacher_detach_worker_threads" : "60", "csi_attacher_worker_threads" : "60", "default_vpc_id" : "", "disable_auto_mount_secret" : false, "enable_node_attacher" : false, "flow_control" : { }, "multiAZEnabled" : false, "over_subscription" : "80", "project_id" : "", "volume_attaching_flow_ctrl" : "0" }, "flavor1" : { "description" : "High avaiable", "name" : "HA", "replicas" : 2, "resources" : [ { "limitsCpu" : "250m", "limitsMem" : "1500Mi", "name" : "everest-csi-controller", "requestsCpu" : "250m", "requestsMem" : "600Mi" }, { "limitsCpu" : "500m", "limitsMem" : "300Mi", "name" : "everest-csi-driver", "requestsCpu" : "100m", "requestsMem" : "300Mi" } ] }, "flavor2" : { "description" : "Has only one instance", "name" : "Single", "replicas" : 1, "resources" : [ { "limitsCpu" : "250m", "limitsMem" : "600Mi", "name" : "everest-csi-controller", "requestsCpu" : "250m", "requestsMem" : "600Mi" }, { "limitsCpu" : "100m", "limitsMem" : "300Mi", "name" : "everest-csi-driver", "requestsCpu" : "100m", "requestsMem" : "300Mi" } ] }, "flavor3" : { "description" : "custom resources", "name" : "custom-resources", "replicas" : 2, "resources" : [ { "limitsCpu" : "250m", "limitsMem" : "2000Mi", "name" : "everest-csi-controller", "requestsCpu" : "250m", "requestsMem" : "1500Mi" }, { "limitsCpu" : "500m", "limitsMem" : "300Mi", "name" : "everest-csi-driver", "requestsCpu" : "100m", "requestsMem" : "300Mi" } ] } } }, "stable" : true, "translate" : { "en_US" : { "addon" : { "changeLog" : "", "description" : "" }, "description" : { "Parameters.flavor1.description" : "Deploy the add-on with two instances, delivering high availa
bility but requiring more compute resources.", "Parameters.flavor1.name" : "HA", "Parameters.flavor2.description" : "Deploy the add-on with one instance.", "Parameters.flavor2.name" : "Standalone", "Parameters.flavor3.name" : "Custom" } }, "fr_FR" : { "addon" : { "changeLog" : "", "description" : "" }, "description" : { "Parameters.flavor1.description" : "Déployez avec deux instances, haute disponibilité.", "Parameters.flavor1.name" : "HA", "Parameters.flavor2.description" : "Déployez avec une seule instance.", "Parameters.flavor2.name" : "Célibataire", "Parameters.flavor3.name" : "Douane" } }, "zh_CN" : { "addon" : { "changeLog" : "", "description" : "" }, "description" : { "Parameters.flavor1.description" : "双实例部署,具有高可用能力,需占用更多的计算资源。", "Parameters.flavor1.name" : "高可用", "Parameters.flavor2.description" : "单实例部署.", "Parameters.flavor2.name" : "单实例", "Parameters.flavor3.description" : "自定义资源规格部署", "Parameters.flavor3.name" : "自定义" } } }, "supportVersions" : null, "creationTimestamp" : "2023-05-12T16:10:05Z", "updateTimestamp" : "2023-05-12T16:10:05Z" } } }
SDK代码示例
SDK代码示例如下。
更新everest插件,更新后的插件版本为2.1.30。
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.cce.v3.region.CceRegion; import com.huaweicloud.sdk.cce.v3.*; import com.huaweicloud.sdk.cce.v3.model.*; import java.util.Map; import java.util.HashMap; public class UpdateAddonInstanceSolution { public static void main(String[] args) { String ak = "<YOUR AK>"; String sk = "<YOUR SK>"; ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); CceClient client = CceClient.newBuilder() .withCredential(auth) .withRegion(CceRegion.valueOf("cn-north-4")) .build(); UpdateAddonInstanceRequest request = new UpdateAddonInstanceRequest(); request.withId("<id>"); InstanceRequest body = new InstanceRequest(); Map<String, Object> listSpecValues = new HashMap<>(); listSpecValues.put("basic", "{\"evs_url\":\"*****\",\"obs_url\":\"*****\",\"cluster_version\":\"v1.23\",\
"supportH
cs\":false,\"iam_url\":\"*****\",\"rbac_enabled\":true,\"ecsEndpoint\":\"*****\",\"sfs_url\":\"*****\",\"platform\
":\"linux-
amd64\",\"ims_url\":\"*****\",\"driver_init_image_version\":\"2.1.30\",\"sfs30_url\":\"*****\",\"sfs_turbo_url\":
\"*****\",\"swr_user\":\"hwofficial\",\"bms_url\":\"*****\",\"everest_image_version\":\"2.1.30\",\"swr_addr\":\"**
***\"}"); listSpecValues.put("flavor", "{\"replicas\":2,\"name\":\"HA\",\"description\":\"High avaiable\",\"resource
s\":[{\"limitsCpu\":\"250m\",\"name\":\"everest-csi-controller\",\"limitsMem\":\"2000Mi\",\"requestsMem\":\"1500M
i\",\"requestsCpu\":\"250m\"},{\"limitsCpu\":\"500m\",\"name\":\"everest-csi-driver\",\"limitsMem\":\"300Mi\",\"r
equestsMem\":\"300Mi\",\"requestsCpu\":\"100m\"}],\"category\":[\"CCE\",\"Turbo\"]}"); listSpecValues.put("custom", "{\"csi_attacher_worker_threads\":\"60\",\"cluster_id\":\"*****\",\"csi_att
acher_detach_worker_threads\":\"60\",\"disable_auto_mount_secret\":false,\"over_subscription\":\"80\",\"project_
id\":\"*****\",\"enable_node_attacher\":true,\"volume_attaching_flow_ctrl\":\"0\",\"multiAZEnabled\":false,\"f
low_control\":{},\"default_vpc_id\":\"*****\"}"); InstanceRequestSpec specbody = new InstanceRequestSpec(); specbody.withVersion("2.1.30") .withClusterID("*****") .withValues(listSpecValues) .withAddonTemplateName("everest"); Map<String, String> listMetadataAnnotations = new HashMap<>(); listMetadataAnnotations.put("addon.upgrade/type", "upgrade"); AddonMetadata metadatabody = new AddonMetadata(); metadatabody.withAnnotations(listMetadataAnnotations); body.withSpec(specbody); body.withMetadata(metadatabody); body.withApiVersion("v3"); body.withKind("Addon"); request.withBody(body); try { UpdateAddonInstanceResponse response = client.updateAddonInstance(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
更新everest插件,更新后的插件版本为2.1.30。
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcce.v3.region.cce_region import CceRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcce.v3 import * if __name__ == "__main__": ak = "<YOUR AK>" sk = "<YOUR SK>" credentials = BasicCredentials(ak, sk) \ client = CceClient.new_builder() \ .with_credentials(credentials) \ .with_region(CceRegion.value_of("cn-north-4")) \ .build() try: request = UpdateAddonInstanceRequest() request.id = "<id>" listValuesSpec = { "basic": "{\"evs_url\":\"*****\",\"obs_url\":\"*****\",\"cluster_version\":\"v1.23\",\"supportHcs\":false
,\"iam_url\":\"*****\",\"rbac_enabled\":true,\"ecsEndpoint\":\"*****\",\"sfs_url\":\"*****\",\"platform\":\"linux-amd6
4\",\"ims_url\":\"*****\",\"driver_init_image_version\":\"2.1.30\",\"sfs30_url\":\"*****\",\"sfs_turbo_url\":\"*****\"
,\"swr_user\":\"hwofficial\",\"bms_url\":\"*****\",\"everest_image_version\":\"2.1.30\",\"swr_addr\":\"*****\"}", "flavor": "{\"replicas\":2,\"name\":\"HA\",\"description\":\"High avaiable\",\"resources\":[{\"limitsCpu\
":\"250m\",\"name\":\"everest-csi-controller\",\"limitsMem\":\"2000Mi\",\"requestsMem\":\"1500Mi\",\"requestsCpu\":\"25
0m\"},{\"limitsCpu\":\"500m\",\"name\":\"everest-csi-driver\",\"limitsMem\":\"300Mi\",\"requestsMem\":\"300Mi\",\"req
uest
sCpu\":\"100m\"}],\"category\":[\"CCE\",\"Turbo\"]}", "custom": "{\"csi_attacher_worker_threads\":\"60\",\"cluster_id\":\"*****\",\"csi_attacher_detach_worker_t
hreads\":\"60\",\"disable_auto_mount_secret\":false,\"over_subscription\":\"80\",\"project_id\":\"*****\",\"enable_node
_at
tacher\":true,\"volume_attaching_flow_ctrl\":\"0\",\"multiAZEnabled\":false,\"flow_control\":{},\"default_vpc_id\
":\"*****\"}" } specbody = InstanceRequestSpec( version="2.1.30", cluster_id="*****", values=listValuesSpec, addon_template_name="everest" ) listAnnotationsMetadata = { "addon.upgrade/type": "upgrade" } metadatabody = AddonMetadata( annotations=listAnnotationsMetadata ) request.body = InstanceRequest( spec=specbody, metadata=metadatabody, api_version="v3", kind="Addon" ) response = client.update_addon_instance(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
更新everest插件,更新后的插件版本为2.1.30。
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region" ) func main() { ak := "<YOUR AK>" sk := "<YOUR SK>" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := cce.NewCceClient( cce.CceClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.UpdateAddonInstanceRequest{} request.Id = "<id>" var listValuesSpec = map[string]interface{}{ "basic": "{\"evs_url\":\"*****\",\"obs_url\":\"*****\",\"cluster_version\":\"v1.23\",\"supportHcs\":false,
\"iam_url\":\"*****\",\"rbac_enabled\":true,\"ecsEndpoint\":\"*****\",\"sfs_url\":\"*****\",\"platform\":\"linux-amd6
4\",\"ims_url\":\"*****\",\"driver_init_image_version\":\"2.1.30\",\"sfs30_url\":\"*****\",\"sfs_turbo_url\":\"*****
\",\"
swr_user\":\"hwofficial\",\"bms_url\":\"*****\",\"everest_image_version\":\"2.1.30\",\"swr_addr\":\"*****\"}", "flavor": "{\"replicas\":2,\"name\":\"HA\",\"description\":\"High avaiable\",\"resources\":[{\"limitsCpu\":\
"250m\",\"name\":\"everest-csi-controller\",\"limitsMem\":\"2000Mi\",\"requestsMem\":\"1500Mi\",\"requestsCpu\":\"250m
\"
},{\"limitsCpu\":\"500m\",\"name\":\"everest-csi-driver\",\"limitsMem\":\"300Mi\",\"requestsMem\":\"300Mi\",\"requests
Cpu\
":\"100m\"}],\"category\":[\"CCE\",\"Turbo\"]}", "custom": "{\"csi_attacher_worker_threads\":\"60\",\"cluster_id\":\"*****\",\"csi_attacher_detach_worker_threa
ds\":\"60\",\"disable_auto_mount_secret\":false,\"over_subscription\":\"80\",\"project_id\":\"*****\",\"enable_node_a
ttach
er\":true,\"volume_attaching_flow_ctrl\":\"0\",\"multiAZEnabled\":false,\"flow_control\":{},\"default_vpc_id\":\"****
*\"}", } versionSpec:= "2.1.30" specbody := &model.InstanceRequestSpec{ Version: &versionSpec, ClusterID: "*****", Values: listValuesSpec, AddonTemplateName: "everest", } var listAnnotationsMetadata = map[string]string{ "addon.upgrade/type": "upgrade", } metadatabody := &model.AddonMetadata{ Annotations: listAnnotationsMetadata, } request.Body = &model.InstanceRequest{ Spec: specbody, Metadata: metadatabody, ApiVersion: "v3", Kind: "Addon", } response, err := client.UpdateAddonInstance(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
OK |
错误码
请参见错误码。