
# 更新插件实例 - UpdateAddonInstance
#### 功能介绍
更新插件实例
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ucs/ucs_api_0026.html)。
#### URI
PUT /v1/addons/{id}
表1路径参数 
| 参数 | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| id | 是    | String | 插件实例id |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                              |
|:---|:---|:---|:---|
| X-Auth-Token | 否    | String | 身份认证信息，调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值 |
| Content-Type | 是    | String | 消息体的类型（格式），仅支持application/json                                  |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型                                                                            | 描述               |
|:---|:---|:---|:---|
| kind       | 是    | String                                                                          | API类型，必须是"Addon" |
| apiVersion | 是    | String                                                                          | API版本，必须是"v3"    |
| metadata   | 是    | [ObjectMeta] object                   | 资源元数据            |
| spec       | 否    | [AddonInstanceSpec] object     | 插件实例的期望状态        |
| status     | 否    | [AddonInstanceStatus] object | 插件实例的实际状态        |
   
 表4ObjectMeta 
| 参数                | 是否必选 | 参数类型                                                                                    | 描述                                        |
|:---|:---|:---|:---|
| uid               | 否    | String                                                                                  | 资源ID                                      |
| name              | 否    | String                                                                                  | 资源名称                                      |
| generateName      | 否    | String                                                                                  | 当未提供name时，服务器使用的前缀来生成唯一名称                 |
| namespace         | 否    | String                                                                                  | 命名空间                                      |
| labels            | 否    | Map\<String,String\>                                                                    | 标签                                        |
| annotations       | 否    | Map\<String,String\>                                                                    | 注解                                        |
| creationTimestamp | 否    | String                                                                                  | 创建时间                                      |
| updateTimestamp   | 否    | String                                                                                  | 更新时间                                      |
| resourceVersion   | 否    | String                                                                                  | 资源内部版本                                    |
| generation        | 否    | Integer                                                                                 | 资源期望状态的代数                                 |
| managedFields     | 否    | Array of [ManagedFieldsEntry] objects | 记录哪些字段由哪些工作流管理                            |
| ownerReferences   | 否    | Array of [OwnerReference] objects         | 用于定义对象间所有权关系，管理对象的依赖关系和垃圾回收机制，支持控制器对资源的管理 |
   
 表5ManagedFieldsEntry 
| 参数         | 是否必选 | 参数类型   | 描述                                       |
|:---|:---|:---|:---|
| manager    | 否    | String | 管理者的名称                                   |
| operation  | 否    | String | 记录导致此条目创建的操作类型，只能是 Apply 或 Update 两种操作类型 |
| apiVersion | 否    | String | 该管理者定义字段时所依据的资源 API 版本                   |
| time       | 否    | String | 此管理条目被创建或最后一次更新的时间戳                      |
| fieldsType | 否    | String | 固定为 "FieldsV1"，标记字段结构格式                  |
| fieldsV1   | 否    | Object | 用于存储实际被管理的字段信息                           |
   
 表6OwnerReference 
| 参数                 | 是否必选 | 参数类型    | 描述                                                                |
|:---|:---|:---|:---|
| apiVersion         | 否    | String  | 标识引用对象的API版本                                                      |
| kind               | 否    | String  | 引用对象的类型                                                           |
| name               | 否    | String  | 引用对象的名称                                                           |
| uid                | 否    | String  | 引用对象的uid                                                          |
| controller         | 否    | Boolean | 如果为true，表示该引用指向管理该资源的控制器                                          |
| blockOwnerDeletion | 否    | Boolean | 当为true且拥有者有名为"foregroundDeletion"的finalizer 时，会阻止拥有者被删除，直到这个引用被移除 |
   
 表7AddonInstanceSpec 
| 参数                  | 是否必选 | 参数类型                                                                | 描述           |
|:---|:---|:---|:---|
| clusterID           | 否    | String                                                              | cluster ID信息 |
| version             | 否    | String                                                              | 插件版本信息       |
| addonTemplateName   | 否    | String                                                              | 插件模板名称       |
| addonTemplateType   | 否    | String                                                              | 插件模板类型       |
| addonTemplateLogo   | 否    | String                                                              | 插件模板Logo     |
| addonTemplateLabels | 否    | Array of strings                                                    | 插件模板标签       |
| description         | 否    | String                                                              | 信息说明         |
| values              | 否    | Map\<String,Object\>                                                | 插件实例的配置参数    |
| parameters          | 否    | [ReleaseParams] object | 发布参数         |
| namespace           | 否    | String                                                              | 命名空间         |
   
 表8ReleaseParams 
| 参数              | 是否必选 | 参数类型    | 描述             |
|:---|:---|:---|:---|
| dry_run         | 否    | Boolean | 是否仅模拟安装过程      |
| replace         | 否    | Boolean | 是否允许重用已存在的名称   |
| recreate        | 否    | Boolean | 是否强制重新创建资源     |
| no_hooks        | 否    | Boolean | 是否禁止hook       |
| reset_values    | 否    | Boolean | 更新时重设values    |
| name_template   | 否    | String  | 发布资源的名称模板      |
| release_version | 否    | Integer | 指定回滚版本号        |
| include_hooks   | 否    | Boolean | 更新或删除时是否允许hook |
   
 表9AddonInstanceStatus 
| 参数             | 是否必选 | 参数类型                                                              | 描述     |
|:---|:---|:---|:---|
| status         | 否    | String                                                            | 状态信息   |
| Reason         | 否    | String                                                            | 变化原因信息 |
| message        | 否    | String                                                            | 变化详细信息 |
| targetVersions | 否    | Array of strings                                                  | 目标版本信息 |
| currentVersion | 否    | [AddonVersion] object | 当前版本   |
   
 表10AddonVersion 
| 参数                | 是否必选 | 参数类型                                                                            | 描述                 |
|:---|:---|:---|:---|
| id                | 否    | String                                                                          | 插件包版本id            |
| version           | 否    | String                                                                          | 插件版本信息             |
| input             | 否    | Map\<String,Object\>                                                            | 输入                 |
| stable            | 否    | Boolean                                                                         | 是否为稳定版本            |
| translate         | 否    | Map\<String,Object\>                                                            | 供界面使用的翻译信息         |
| supportVersions   | 否    | Array of [SupportVersion] objects | 支持的集群类型和和支持的集群版本信息 |
| creationTimestamp | 否    | String                                                                          | 记录创建时间             |
| updateTimestamp   | 否    | String                                                                          | 记录更新时间             |
   
 表11SupportVersion 
| 参数             | 是否必选 | 参数类型             | 描述                                         |
|:---|:---|:---|:---|
| category       | 否    | String           | 支持的集群类型                                    |
| clusterType    | 否    | String           | 支持的集群类型（BareMetal，VirtualMachine，windows等） |
| clusterVersion | 否    | Array of strings | 支持的集群版本，支持正则表达式，如".\*"匹配所有集群版本             |
   
#### 响应参数
**状态码：200**
表12响应Body参数 
| 参数         | 参数类型                                                                             | 描述               |
|:---|:---|:---|
| kind       | String                                                                           | API类型，必须是"Addon" |
| apiVersion | String                                                                           | API版本，必须是"v3"    |
| metadata   | [ObjectMeta] object                   | 资源元数据            |
| spec       | [AddonInstanceSpec] object     | 插件实例的期望状态        |
| status     | [AddonInstanceStatus] object | 插件实例的实际状态        |
   
 表13ObjectMeta 
| 参数                | 参数类型                                                                                     | 描述                                        |
|:---|:---|:---|
| uid               | String                                                                                   | 资源ID                                      |
| name              | String                                                                                   | 资源名称                                      |
| generateName      | String                                                                                   | 当未提供name时，服务器使用的前缀来生成唯一名称                 |
| namespace         | String                                                                                   | 命名空间                                      |
| labels            | Map\<String,String\>                                                                     | 标签                                        |
| annotations       | Map\<String,String\>                                                                     | 注解                                        |
| creationTimestamp | String                                                                                   | 创建时间                                      |
| updateTimestamp   | String                                                                                   | 更新时间                                      |
| resourceVersion   | String                                                                                   | 资源内部版本                                    |
| generation        | Integer                                                                                  | 资源期望状态的代数                                 |
| managedFields     | Array of [ManagedFieldsEntry] objects | 记录哪些字段由哪些工作流管理                            |
| ownerReferences   | Array of [OwnerReference] objects         | 用于定义对象间所有权关系，管理对象的依赖关系和垃圾回收机制，支持控制器对资源的管理 |
   
 表14ManagedFieldsEntry 
| 参数         | 参数类型   | 描述                                       |
|:---|:---|:---|
| manager    | String | 管理者的名称                                   |
| operation  | String | 记录导致此条目创建的操作类型，只能是 Apply 或 Update 两种操作类型 |
| apiVersion | String | 该管理者定义字段时所依据的资源 API 版本                   |
| time       | String | 此管理条目被创建或最后一次更新的时间戳                      |
| fieldsType | String | 固定为 "FieldsV1"，标记字段结构格式                  |
| fieldsV1   | Object | 用于存储实际被管理的字段信息                           |
   
 表15OwnerReference 
| 参数                 | 参数类型    | 描述                                                                |
|:---|:---|:---|
| apiVersion         | String  | 标识引用对象的API版本                                                      |
| kind               | String  | 引用对象的类型                                                           |
| name               | String  | 引用对象的名称                                                           |
| uid                | String  | 引用对象的uid                                                          |
| controller         | Boolean | 如果为true，表示该引用指向管理该资源的控制器                                          |
| blockOwnerDeletion | Boolean | 当为true且拥有者有名为"foregroundDeletion"的finalizer 时，会阻止拥有者被删除，直到这个引用被移除 |
   
 表16AddonInstanceSpec 
| 参数                  | 参数类型                                                                 | 描述           |
|:---|:---|:---|
| clusterID           | String                                                               | cluster ID信息 |
| version             | String                                                               | 插件版本信息       |
| addonTemplateName   | String                                                               | 插件模板名称       |
| addonTemplateType   | String                                                               | 插件模板类型       |
| addonTemplateLogo   | String                                                               | 插件模板Logo     |
| addonTemplateLabels | Array of strings                                                     | 插件模板标签       |
| description         | String                                                               | 信息说明         |
| values              | Map\<String,Object\>                                                 | 插件实例的配置参数    |
| parameters          | [ReleaseParams] object | 发布参数         |
| namespace           | String                                                               | 命名空间         |
   
 表17ReleaseParams 
| 参数              | 参数类型    | 描述             |
|:---|:---|:---|
| dry_run         | Boolean | 是否仅模拟安装过程      |
| replace         | Boolean | 是否允许重用已存在的名称   |
| recreate        | Boolean | 是否强制重新创建资源     |
| no_hooks        | Boolean | 是否禁止hook       |
| reset_values    | Boolean | 更新时重设values    |
| name_template   | String  | 发布资源的名称模板      |
| release_version | Integer | 指定回滚版本号        |
| include_hooks   | Boolean | 更新或删除时是否允许hook |
   
 表18AddonInstanceStatus 
| 参数             | 参数类型                                                               | 描述     |
|:---|:---|:---|
| status         | String                                                             | 状态信息   |
| Reason         | String                                                             | 变化原因信息 |
| message        | String                                                             | 变化详细信息 |
| targetVersions | Array of strings                                                   | 目标版本信息 |
| currentVersion | [AddonVersion] object | 当前版本   |
   
 表19AddonVersion 
| 参数                | 参数类型                                                                             | 描述                 |
|:---|:---|:---|
| id                | String                                                                           | 插件包版本id            |
| version           | String                                                                           | 插件版本信息             |
| input             | Map\<String,Object\>                                                             | 输入                 |
| stable            | Boolean                                                                          | 是否为稳定版本            |
| translate         | Map\<String,Object\>                                                             | 供界面使用的翻译信息         |
| supportVersions   | Array of [SupportVersion] objects | 支持的集群类型和和支持的集群版本信息 |
| creationTimestamp | String                                                                           | 记录创建时间             |
| updateTimestamp   | String                                                                           | 记录更新时间             |
   
 表20SupportVersion 
| 参数             | 参数类型             | 描述                                         |
|:---|:---|:---|
| category       | String           | 支持的集群类型                                    |
| clusterType    | String           | 支持的集群类型（BareMetal，VirtualMachine，windows等） |
| clusterVersion | Array of strings | 支持的集群版本，支持正则表达式，如".\*"匹配所有集群版本             |
   
**状态码：400**
表21响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：404**
表22响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：500**
表23响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
#### 请求示例
更新插件实例
```
PUT https://ucs.myhuaweicloud.com/v1/addons{id}
{
  "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 available",
        "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**
返回插件实例信息
```
{
  "kind" : "Addon",
  "apiVersion" : "v3",
  "metadata" : {
    "uid" : "******",
    "name" : "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,
    "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 available",
            "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"
    }
  }
}
```
#### 状态码
| 状态码 | 描述                |
|:---|:---|
| 200 | 返回插件实例信息          |
| 400 | 客户端请求错误，服务器无法执行请求 |
| 404 | 资源不存在             |
| 500 | 服务器内部错误           |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ucs/ErrorCode.html)。
