Updated on 2026-09-08 GMT+08:00

Creating a Release

Function

This API is used to create a release.

Calling Method

For details, see Calling APIs.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.

  • If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
  • If you are using identity policy-based authorization, the following identity policy-based permissions are required.

    Action

    Access Level

    Resource Type (*: required)

    Condition Key

    Alias

    Dependencies

    cce:release:create

    Write

    -

    • cce:ClusterId

    • g:EnterpriseProjectId

    -

    -

URI

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

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

cluster_id

Yes

String

Details:

Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI.

Constraints:

None

Options:

Cluster IDs

Default value:

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Definition:

Type (or format) of the request body. The default value is application/json. Other values of this field will be provided for specific APIs, if any.

Constraints:

GET requests are not validated.

Range:

N/A

Default Value:

N/A

X-Auth-Token

Yes

String

Details:

Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details, see Obtaining a User Token.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

chart_id

Yes

String

Definition:

Chart ID

Constraints:

N/A

Range:

N/A

Default Value:

N/A

description

No

String

Definition:

Release description

Constraints:

N/A

Range:

N/A

Default Value:

N/A

name

Yes

String

Definition:

Release name

Constraints:

The value must start with a lowercase letter and end with a lowercase letter or digit. Only lowercase letters, digits, and hyphens (-) are allowed.

Range:

N/A

Default Value:

N/A

namespace

Yes

String

Definition:

Namespace that a chart release belongs to

Constraints:

N/A

Range:

N/A

Default Value:

N/A

version

Yes

String

Definition:

Release version

Constraints:

N/A

Range:

N/A

Default Value:

N/A

parameters

No

ReleaseReqBodyParams object

Definition:

Release parameters

Constraints:

N/A

Range:

N/A

Default Value:

N/A

values

Yes

values object

Definition:

Release value

Constraints:

N/A

Range:

N/A

Default Value:

N/A

Table 4 ReleaseReqBodyParams

Parameter

Mandatory

Type

Description

dry_run

No

Boolean

Definition:

After this function is enabled, only chart parameters are verified, and installation is not performed.

Constraints:

N/A

Range:

  • true: verification only

  • false: normal installation

Default Value:

false

name_template

No

String

Definition:

Release name template

Constraints:

N/A

Range:

N/A

Default Value:

N/A

no_hooks

No

Boolean

Definition:

Whether to disable hooks during installation

Constraints:

N/A

Range:

  • true: Hooks are disabled.

  • false: Hooks are not disabled.

Default Value:

false

replace

No

Boolean

Definition:

Whether to retain the values setting when a release is updated. This field takes effect only when a specified release is updated.

Constraints:

N/A

Range:

  • true: The values setting is retained.

  • false: The values setting is not retained.

Default Value:

false

recreate

No

Boolean

Definition:

Whether to rebuild a release when it is updated. This field takes effect only when a specified release is updated.

Constraints:

N/A

Range:

  • true: The release is rebuilt.

  • false: The release is not rebuilt.

Default Value:

false

reset_values

No

Boolean

Definition:

Whether to reset the values setting when a release is updated. This field takes effect only when a specified release is updated.

Constraints:

N/A

Range:

  • true: The values setting is reset.

  • false: The values setting is not reset.

Default Value:

false

release_version

No

Integer

Definition:

Version of the release to be rolled back

Constraints:

N/A

Range:

N/A

Default Value:

N/A

include_hooks

No

Boolean

Definition:

Whether to enable hooks during an update or deletion

Constraints:

N/A

Range:

  • true: Hooks are enabled.

  • false: Hooks are not enabled.

Default Value:

false

Table 5 values

Parameter

Mandatory

Type

Description

imagePullPolicy

No

String

Definition:

Image pull policy

Constraints:

N/A

Range:

N/A

Default Value:

N/A

imageTag

No

String

Definition:

Image tag

Constraints:

N/A

Range:

N/A

Default Value:

N/A

Response Parameters

Status code: 201

Table 6 Response body parameters

Parameter

Type

Description

chart_name

String

Definition:

Name

Range:

N/A

chart_public

Boolean

Definition:

Whether the chart is public

Range:

  • true: The chart is public.

  • false: The chart is not public.

chart_version

String

Definition:

Chart version

Range:

N/A

cluster_id

String

Definition:

Cluster ID

Range:

N/A

cluster_name

String

Definition:

Cluster name

Range:

N/A

create_at

String

Definition:

Creation time

Range:

N/A

description

String

Definition:

Release description

Range:

N/A

name

String

Definition:

Release name

Range:

N/A

namespace

String

Definition:

Namespace that a chart release belongs to

Range:

N/A

parameters

String

Definition:

Release parameters

Range:

N/A

resources

String

Definition:

Resources required by a release

Range:

N/A

status

String

Definition:

Release status

Range:

  • DEPLOYED: The release has been deployed and is normal.

  • DELETED: The release has been deleted.

  • FAILED: The release failed to be deployed.

  • DELETING: The release is being deleted.

  • PENDING_INSTALL: The release is waiting to be installed.

  • PENDING_UPGRADE: The release is waiting to be upgraded.

  • PENDING_ROLLBACK: The release is waiting to be rolled back.

  • UNKNOWN: The release status is unknown, indicating that the release is abnormal. You can manually delete the release and reinstall it.

status_description

String

Definition:

Release status description

Range:

N/A

update_at

String

Definition:

Update time

Range:

N/A

values

String

Definition:

Release value

Range:

N/A

version

Integer

Definition:

Release version

Range:

N/A

Example Requests

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" : ""
  }
}

Example Responses

Status code: 201

The chart release has been created.

{
  "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 Sample Code

The SDK sample code is as follows.

 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)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

201

The chart release has been created.

Error Codes

See Error Codes.