功能介绍
更新插件实例的功能。
调用方法
请参见如何调用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 |
错误码
请参见错误码。