更新时间:2024-11-06 GMT+08:00

更新AddonInstance

功能介绍

更新插件实例的功能。

调用方法

请参见如何调用API

URI

PUT /api/v3/addons/{id}

表1 路径参数

参数

是否必选

参数类型

描述

id

String

插件实例id

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

参数解释:

消息体的类型(格式)

约束限制:

GET方法不做校验

取值范围:

  • application/json

  • application/json;charset=utf-8

  • application/x-pem-file

默认取值:

不涉及

X-Auth-Token

String

参数解释:

调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

kind

String

API类型,固定值“Addon”,该值不可修改,该字段传入无效。

apiVersion

String

API版本,固定值“v3”,该值不可修改,该字段传入无效。

metadata

AddonMetadata object

基本信息,为集合类的元素类型,包含一组由不同名称定义的属性

spec

InstanceRequestSpec object

spec是集合类的元素类型,内容为插件实例安装/升级的具体请求信息

表4 AddonMetadata

参数

是否必选

参数类型

描述

uid

String

唯一id标识

name

String

插件名称

alias

String

插件别名

labels

Map<String,String>

插件标签,key/value对格式,接口保留字段,填写不会生效

annotations

Map<String,String>

插件注解,由key/value组成

  • 安装:固定值为{"addon.install/type":"install"}

  • 升级:固定值为{"addon.upgrade/type":"upgrade"}

updateTimestamp

String

更新时间

creationTimestamp

String

创建时间

表5 InstanceRequestSpec

参数

是否必选

参数类型

描述

version

String

待安装、升级插件的版本号,例如1.0.0

  • 安装:该参数非必传,如果不传,匹配集群支持的最新版本

  • 升级:该参数必传,需指定版本号

clusterID

String

集群id

values

Map<String,Object>

插件模板安装参数(各插件不同),升级插件时需要填写全量安装参数,未填写参数将使用插件模板中的默认值,当前插件安装参数可通过查询插件实例接口获取。

addonTemplateName

String

待安装插件模板名称,如coredns

响应参数

状态码: 200

表6 响应Body参数

参数

参数类型

描述

kind

String

API类型,固定值“Addon”,该值不可修改。

apiVersion

String

API版本,固定值“v3”,该值不可修改。

metadata

AddonMetadata object

基本信息,为集合类的元素类型,包含一组由不同名称定义的属性

spec

InstanceSpec object

spec是集合类的元素类型,内容为插件实例具体信息,实例的详细描述主体部分都在spec中给出

status

AddonInstanceStatus object

插件实例状态

表7 AddonMetadata

参数

参数类型

描述

uid

String

唯一id标识

name

String

插件名称

alias

String

插件别名

labels

Map<String,String>

插件标签,key/value对格式,接口保留字段,填写不会生效

annotations

Map<String,String>

插件注解,由key/value组成

  • 安装:固定值为{"addon.install/type":"install"}

  • 升级:固定值为{"addon.upgrade/type":"upgrade"}

updateTimestamp

String

更新时间

creationTimestamp

String

创建时间

表8 InstanceSpec

参数

参数类型

描述

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>

插件模板安装参数(各插件不同),请根据具体插件模板信息填写安装参数。

表9 AddonInstanceStatus

参数

参数类型

描述

status

String

插件实例状态, 取值如下

  • running:运行中,表示插件全部实例状态都在运行中,插件正常使用。

  • abnormal:不可用,表示插件状态异常,插件不可使用。可单击插件名称查看实例异常事件。

  • installing:安装中,表示插件正在安装中。

  • installFailed:安装失败,表示插件安装失败,需要卸载后重新安装。

  • upgrading:升级中,表示插件正在更新中。

  • upgradeFailed:升级失败,表示插件升级失败,可重试升级或卸载后重新安装。

  • deleting:删除中,表示插件正在删除中。

  • deleteFailed:删除失败,表示插件删除失败,可重试卸载。

  • deleteSuccess:删除成功,表示插件删除成功。

  • available:部分就绪,表示插件下只有部分实例状态为运行中,插件部分功能可用。

  • rollbacking:回滚中,表示插件正在回滚中。

  • rollbackFailed:回滚失败,表示插件回滚失败,可重试回滚或卸载后重新安装。

  • unknown:未知状态,表示插件模板实例不存在。

Reason

String

插件安装失败原因

message

String

安装错误详情

targetVersions

Array of strings

此插件版本,支持升级的集群版本

currentVersion

Versions object

当前插件实例使用的具体插件版本信息

isRollbackable

Boolean

是否支持回滚到插件升级前的插件版本

previousVersion

String

插件升级或回滚前的版本

表10 Versions

参数

参数类型

描述

version

String

插件版本号

input

Object

插件安装参数

stable

Boolean

是否为稳定版本

translate

Object

供界面使用的翻译信息

supportVersions

Array of SupportVersions objects

支持集群版本号

creationTimestamp

String

创建时间

updateTimestamp

String

更新时间

表11 SupportVersions

参数

参数类型

描述

clusterType

String

支持的集群类型

clusterVersion

Array of strings

支持的集群版本(正则表达式)

请求示例

更新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 availability 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。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        CceClient client = CceClient.newBuilder()
                .withCredential(auth)
                .withRegion(CceRegion.valueOf("<YOUR REGION>"))
                .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\",\"supportHcs\":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\",\"resources\":[{\"limitsCpu\":\"250m\",\"name\":\"everest-csi-controller\",\"limitsMem\":\"2000Mi\",\"requestsMem\":\"1500Mi\",\"requestsCpu\":\"250m\"},{\"limitsCpu\":\"500m\",\"name\":\"everest-csi-driver\",\"limitsMem\":\"300Mi\",\"requestsMem\":\"300Mi\",\"requestsCpu\":\"100m\"}],\"category\":[\"CCE\",\"Turbo\"]}");
        listSpecValues.put("custom", "{\"csi_attacher_worker_threads\":\"60\",\"cluster_id\":\"*****\",\"csi_attacher_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,\"flow_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。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# coding: utf-8

import os
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__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = BasicCredentials(ak, sk)

    client = CceClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CceRegion.value_of("<YOUR REGION>")) \
        .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-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\":\"*****\"}",
            "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\",\"requestsCpu\":\"100m\"}],\"category\":[\"CCE\",\"Turbo\"]}",
            "custom": "{\"csi_attacher_worker_threads\":\"60\",\"cluster_id\":\"*****\",\"csi_attacher_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,\"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。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := cce.NewCceClient(
        cce.CceClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            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-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\":\"*****\"}",
        "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\",\"requestsCpu\":\"100m\"}],\"category\":[\"CCE\",\"Turbo\"]}",
        "custom": "{\"csi_attacher_worker_threads\":\"60\",\"cluster_id\":\"*****\",\"csi_attacher_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,\"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

错误码

请参见错误码