文档首页/ 云容器引擎 CCE/ API参考/ API/ 模板管理/ 创建模板实例 - CreateRelease
更新时间:2026-08-24 GMT+08:00
分享

创建模板实例 - CreateRelease

功能介绍

创建模板实例

调用方法

请参见如何调用API

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项
  • 如果使用身份策略授权,需具备如下身份策略权限。

    授权项

    访问级别

    资源类型(*为必须)

    条件键

    别名

    依赖的授权项

    cce:release:create

    Write

    -

    • cce:ClusterId

    • g:EnterpriseProjectId

    -

    -

URI

POST /cce/cam/v3/clusters/{cluster_id}/releases

表1 路径参数

参数

是否必选

参数类型

描述

cluster_id

String

参数解释:

集群ID,获取方式请参见如何获取接口URI中参数

约束限制:

不涉及

取值范围:

集群ID

默认取值:

不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

参数解释:

消息体的类型(格式),默认为application/json,有其他取值时会在具体接口中专门说明。

约束限制:

GET方法不做校验

取值范围:

不涉及

默认取值:

不涉及

X-Auth-Token

String

参数解释:

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

chart_id

String

参数解释:

模板ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

description

String

参数解释:

模板实例描述

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

name

String

参数解释:

模板实例名称

约束限制:

由小写字母开头,中间由小写字母、数字和中划线(-)组成,以小写字母或数字结尾

取值范围:

不涉及

默认取值:

不涉及

namespace

String

参数解释:

模板实例所在的命名空间

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

version

String

参数解释:

模板实例版本号

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

parameters

ReleaseReqBodyParams object

参数解释:

模板实例参数

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

values

values object

参数解释:

模板实例的值

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表4 ReleaseReqBodyParams

参数

是否必选

参数类型

描述

dry_run

Boolean

参数解释:

开启后,仅验证模板参数,不进行安装

约束限制:

不涉及

取值范围:

  • true:仅验证

  • false:正常安装

默认取值:

false

name_template

String

参数解释:

实例名称模板

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

no_hooks

Boolean

参数解释:

安装时是否禁用hooks

约束限制:

不涉及

取值范围:

  • true:禁用hooks

  • false:不禁用hooks

默认取值:

false

replace

Boolean

参数解释:

模板实例更新时是否保留values,该字段仅在更新指定模板实例时生效

约束限制:

不涉及

取值范围:

  • true:保留values

  • false:不保留values

默认取值:

false

recreate

Boolean

参数解释:

模板实例更新时是否重建实例,该字段仅在更新指定模板实例时生效

约束限制:

不涉及

取值范围:

  • true:重建实例

  • false:不重建实例

默认取值:

false

reset_values

Boolean

参数解释:

模板实例更新时是否重置values,该字段仅在更新指定模板实例时生效

约束限制:

不涉及

取值范围:

  • true:重置values

  • false:不重置values

默认取值:

false

release_version

Integer

参数解释:

回滚实例的版本

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

include_hooks

Boolean

参数解释:

更新或者删除时启用hooks

约束限制:

不涉及

取值范围:

  • true:启用hooks

  • false:不启用hooks

默认取值:

false

表5 values

参数

是否必选

参数类型

描述

imagePullPolicy

String

参数解释:

镜像拉取策略

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

imageTag

String

参数解释:

镜像标签

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

响应参数

状态码:201

表6 响应Body参数

参数

参数类型

描述

chart_name

String

参数解释:

模板名称

取值范围:

不涉及

chart_public

Boolean

参数解释:

是否公开模板

取值范围:

  • true:公开模板

  • false:不公开模板

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

参数解释:

模板实例版本

取值范围:

不涉及

请求示例

POST /cce/cam/v3/clusters/{cluster_id}/releases

{
  "name" : "nino21",
  "namespace" : "project01",
  "version" : "1.0.0",
  "chart_id" : "3c138b72-7ce4-6d76-7c55-604cdb2ce423",
  "values" : {
    "imageTag" : "v2",
    "imagePullPolicy" : "IfNotPresent"
  },
  "parameters" : {
    "dry_run" : false,
    "no_hooks" : false,
    "replace" : false,
    "name_template" : ""
  }
}

响应示例

状态码:201

创建模板实例成功

{
  "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代码示例如下。

 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
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 CreateReleaseSolution {

    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();
        CreateReleaseRequest request = new CreateReleaseRequest();
        request.withClusterId("{cluster_id}");
        CreateReleaseReqBody body = new CreateReleaseReqBody();
        CreateReleaseReqBodyValues valuesbody = new CreateReleaseReqBodyValues();
        valuesbody.withImagePullPolicy("IfNotPresent")
            .withImageTag("v2");
        ReleaseReqBodyParams parametersbody = new ReleaseReqBodyParams();
        parametersbody.withDryRun(false)
            .withNameTemplate("")
            .withNoHooks(false)
            .withReplace(false);
        body.withValues(valuesbody);
        body.withParameters(parametersbody);
        body.withVersion("1.0.0");
        body.withNamespace("project01");
        body.withName("nino21");
        body.withChartId("3c138b72-7ce4-6d76-7c55-604cdb2ce423");
        request.withBody(body);
        try {
            CreateReleaseResponse response = client.createRelease(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());
        }
    }
}
 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
# 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 = CreateReleaseRequest()
        request.cluster_id = "{cluster_id}"
        valuesbody = CreateReleaseReqBodyValues(
            image_pull_policy="IfNotPresent",
            image_tag="v2"
        )
        parametersbody = ReleaseReqBodyParams(
            dry_run=False,
            name_template="",
            no_hooks=False,
            replace=False
        )
        request.body = CreateReleaseReqBody(
            values=valuesbody,
            parameters=parametersbody,
            version="1.0.0",
            namespace="project01",
            name="nino21",
            chart_id="3c138b72-7ce4-6d76-7c55-604cdb2ce423"
        )
        response = client.create_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)
 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
68
69
70
71
72
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, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := cce.CceClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := cce.NewCceClient(hcClient)

    request := &model.CreateReleaseRequest{}
	request.ClusterId = "{cluster_id}"
	imagePullPolicyValues:= "IfNotPresent"
	imageTagValues:= "v2"
	valuesbody := &model.CreateReleaseReqBodyValues{
		ImagePullPolicy: &imagePullPolicyValues,
		ImageTag: &imageTagValues,
	}
	dryRunParameters:= false
	nameTemplateParameters:= ""
	noHooksParameters:= false
	replaceParameters:= false
	parametersbody := &model.ReleaseReqBodyParams{
		DryRun: &dryRunParameters,
		NameTemplate: &nameTemplateParameters,
		NoHooks: &noHooksParameters,
		Replace: &replaceParameters,
	}
	request.Body = &model.CreateReleaseReqBody{
		Values: valuesbody,
		Parameters: parametersbody,
		Version: "1.0.0",
		Namespace: "project01",
		Name: "nino21",
		ChartId: "3c138b72-7ce4-6d76-7c55-604cdb2ce423",
	}
	response, err := client.CreateRelease(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

201

创建模板实例成功

错误码

请参见错误码

相关文档