
# 更新指定模板实例 - UpdateAutopilotRelease
#### 功能介绍
更新指定模板实例
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-cce-autopilot/cce_02_0099.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cce-autopilot/cce_02_0327.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                              | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | cce:release:update | Write | cluster \*  | - cce:ClusterId   - g:EnterpriseProjectId    | -  | -      |
     
  
 
#### URI
PUT /autopilot/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| name       | 是    | String | 模板实例名称                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| namespace  | 是    | String | 模板实例所在的命名空间                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| cluster_id | 是    | String | **参数解释：** 集群ID，获取方式请参见[如何获取接口URI中参数](https://support.huaweicloud.com/api-cce-autopilot/cce_02_0271.html)。 **约束限制：** 不涉及 **取值范围：** 集群ID **默认取值：** 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释：** 消息体的类型（格式），默认为application/json，有其他取值时会在具体接口中专门说明。 **约束限制：** GET方法不做校验 **默认取值：** 不涉及                                                       |
| X-Auth-Token | 是    | String | **参数解释：** 调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值，获取方式请参见[获取token](https://support.huaweicloud.com/api-cce-autopilot/cce_02_0004.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型                                                                                 | 描述                          |
|:---|:---|:---|:---|
| chart_id   | 是    | String                                                                               | 模板ID                        |
| action     | 是    | String                                                                               | 更新操作，升级为upgrade，回退为rollback |
| parameters | 是    | [ReleaseReqBodyParams] object | 模板实例参数                      |
| values     | 是    | [values] object                             | 模板实例的值                      |
   
 表4ReleaseReqBodyParams 
| 参数              | 是否必选 | 参数类型    | 描述                |
|:---|:---|:---|:---|
| dry_run         | 否    | Boolean | 开启后，仅验证模板参数，不进行安装 |
| name_template   | 否    | String  | 实例名称模板            |
| no_hooks        | 否    | Boolean | 安装时是否禁用hooks      |
| replace         | 否    | Boolean | 是否替换同名实例          |
| recreate        | 否    | Boolean | 是否重建实例            |
| reset_values    | 否    | Boolean | 更新时是否重置values     |
| release_version | 否    | Integer | 回滚实例的版本           |
| include_hooks   | 否    | Boolean | 更新或者删除时启用hooks    |
   
 表5values 
| 参数              | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| imagePullPolicy | 否    | String | 镜像拉取策略 |
| imageTag        | 否    | String | 镜像标签   |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数                 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| chart_name         | String  | 模板名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| chart_public       | Boolean | 是否公开模板                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| chart_version      | String  | 模板版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| cluster_id         | String  | 集群ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| cluster_name       | String  | 集群名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| create_at          | String  | 创建时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| description        | String  | 模板实例描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| name               | String  | 模板实例名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| namespace          | String  | 模板实例所在的命名空间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| parameters         | String  | 模板实例参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| resources          | String  | 模板实例需要的资源                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| status             | String  | 模板实例状态 - DEPLOYED：已部署，表示模板实例处于正常状态。   - DELETED：已删除，表示模板实例已经被删除。   - FAILED：失败，表示模板实例部署失败。   - DELETING：删除中，表示模板实例正处于删除过程中。   - PENDING_INSTALL：待安装，表示模板正在等待安装。   - PENDING_UPGRADE：待升级，表示模板正在等待升级。   - PENDING_ROLLBACK：待回滚，表示模板正在等待回滚。   - UNKNOWN：未知，表示模板状态异常，可尝试手动删除后重新安装。    |
| status_description | String  | 模板实例状态描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| update_at          | String  | 更新时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| values             | String  | 模板实例的值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| version            | Integer | 模板实例版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
#### 请求示例
```
PUT /autopilot/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}
{
  "chart_id" : "af4b699e-018c-11ec-b8b0-0255ac100b05",
  "action" : "upgrade",
  "parameters" : {
    "dry_run" : false,
    "name_template" : "string",
    "no_hooks" : false,
    "replace" : false,
    "recreate" : false,
    "reset_values" : false,
    "release_version" : 1,
    "include_hooks" : false
  },
  "values" : {
    "imagePullPolicy" : "IfNotPresent",
    "imageTag" : "v2"
  }
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "chart_name" : "magento-mysql",
  "chart_public" : false,
  "chart_version" : "1.0.0",
  "cluster_id" : "a870253f-5dc7-11ee-bf71-0255ac100b03",
  "cluster_name" : "sfs-turbo-test",
  "create_at" : "2023-11-14T20:30:57+08:00",
  "description" : "Initial install underway",
  "name" : "testwww",
  "namespace" : "monitoring",
  "parameters" : "",
  "resources" : "",
  "status" : "PENDING_INSTALL",
  "status_description" : "Initial install underway",
  "update_at" : "2023-11-14T20:30:57+08:00",
  "values" : "{\"basic\":{\"admin_password\":\"******\",\"admin_username\":\"username\",\"app_name\":\"magento\",\"mysql_database\":\"magento\",\"mysql_name\":\"mysql\",\"mysql_password\":\"******\",\"mysql_port\":3306,\"mysql_root_password\":\"******\",\"mysql_user\":\"magento\",\"storage_class\":\"csi-nas\",\"storage_mode\":\"ReadWriteMany\",\"storage_size\":\"10G\"},\"global\":{\"magento_EIP\":\"100.100.100.100\",\"magento_EPORT\":32080,\"namespace\":\"default\"},\"image\":{\"magento_image\":\"example.com/everest/magento:latest\",\"mysql_image\":\"example.com/everest/mysql:5.7.14\"}}",
  "version" : 1
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  ```
  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.*;
  public class UpdateAutopilotReleaseSolution {
      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();
          UpdateAutopilotReleaseRequest request = new UpdateAutopilotReleaseRequest();
          request.withName("{name}");
          request.withNamespace("{namespace}");
          request.withClusterId("{cluster_id}");
          UpdateReleaseReqBody body = new UpdateReleaseReqBody();
          UpdateReleaseReqBodyValues valuesbody = new UpdateReleaseReqBodyValues();
          valuesbody.withImagePullPolicy("IfNotPresent")
              .withImageTag("v2");
          ReleaseReqBodyParams parametersbody = new ReleaseReqBodyParams();
          parametersbody.withDryRun(false)
              .withNameTemplate("string")
              .withNoHooks(false)
              .withReplace(false)
              .withRecreate(false)
              .withResetValues(false)
              .withReleaseVersion(1)
              .withIncludeHooks(false);
          body.withValues(valuesbody);
          body.withParameters(parametersbody);
          body.withAction(UpdateReleaseReqBody.ActionEnum.fromValue("upgrade"));
          body.withChartId("af4b699e-018c-11ec-b8b0-0255ac100b05");
          request.withBody(body);
          try {
              UpdateAutopilotReleaseResponse response = client.updateAutopilotRelease(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());
          }
      }
  }
  ```
- [Python]
  ```
  # 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 = UpdateAutopilotReleaseRequest()
          request.name = "{name}"
          request.namespace = "{namespace}"
          request.cluster_id = "{cluster_id}"
          valuesbody = UpdateReleaseReqBodyValues(
              image_pull_policy="IfNotPresent",
              image_tag="v2"
          )
          parametersbody = ReleaseReqBodyParams(
              dry_run=False,
              name_template="string",
              no_hooks=False,
              replace=False,
              recreate=False,
              reset_values=False,
              release_version=1,
              include_hooks=False
          )
          request.body = UpdateReleaseReqBody(
              values=valuesbody,
              parameters=parametersbody,
              action="upgrade",
              chart_id="af4b699e-018c-11ec-b8b0-0255ac100b05"
          )
          response = client.update_autopilot_release(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  ```
  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.UpdateAutopilotReleaseRequest{}
  request.Name = "{name}"
  request.Namespace = "{namespace}"
  request.ClusterId = "{cluster_id}"
  imagePullPolicyValues:= "IfNotPresent"
  imageTagValues:= "v2"
  valuesbody := &model.UpdateReleaseReqBodyValues{
  ImagePullPolicy: &imagePullPolicyValues,
  ImageTag: &imageTagValues,
  }
  dryRunParameters:= false
  nameTemplateParameters:= "string"
  noHooksParameters:= false
  replaceParameters:= false
  recreateParameters:= false
  resetValuesParameters:= false
  releaseVersionParameters:= int32(1)
  includeHooksParameters:= false
  parametersbody := &model.ReleaseReqBodyParams{
  DryRun: &dryRunParameters,
  NameTemplate: &nameTemplateParameters,
  NoHooks: &noHooksParameters,
  Replace: &replaceParameters,
  Recreate: &recreateParameters,
  ResetValues: &resetValuesParameters,
  ReleaseVersion: &releaseVersionParameters,
  IncludeHooks: &includeHooksParameters,
  }
  request.Body = &model.UpdateReleaseReqBody{
  Values: valuesbody,
  Parameters: parametersbody,
  Action: model.GetUpdateReleaseReqBodyActionEnum().UPGRADE,
  ChartId: "af4b699e-018c-11ec-b8b0-0255ac100b05",
  }
  response, err := client.UpdateAutopilotRelease(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CCE/sdk?api=UpdateAutopilotRelease)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cce-autopilot/ErrorCode.html)。
