Deploying a Stack Set
Function
DeployStackSet
This API deploys an existing stack set and returns the stack set operation ID (stack_set_operation_id).
-
You can use this API to update the template and variables of a stack set and deploy it.
-
This API directly triggers deployment of stack instances. You can deploy all stack instances in a stack set or a specified stack instance.
-
This API needs you providing full templates and vars for each deployment.
-
When the triggered deployment fails, the stack set does not automatically roll back the template and variables. However, the stack that fails to be deployed determines whether to roll back based on its rollback configuration. Stacks that have been deployed do not trigger rollback.
-
You can obtain the stack set operation status by calling the ShowStackSetOperationMetadata API based on the stack set operation ID (stack_set_operation_id).
URI
POST /v1/stack-sets/{stack_set_name}/deployments
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| stack_set_name | Yes | String | Stack set name. The name is unique within its domain (domain_id) and region. Only letters, digits, underscores (_), and hyphens (-) are allowed. The name is case-sensitive and must start with a letter. Minimum: 1 Maximum: 128 |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Client-Request-Id | Yes | String | Unique request ID. It is specified by a user and is used to locate a request. UUID is recommended. Minimum: 36 Maximum: 128 |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| stack_set_id | No | String | Unique ID of a stack set. It is a UUID generated by RFS when a stack is created. Stack set names are unique only at one specific time, so you can create a stack set named HelloWorld and another stack set with the same name after deleting the first one. For parallel development in a team, users may want to ensure that the stack set they operate is the one created by themselves, not the one with the same name created by other teammates after deleting the previous one. Therefore, they can use this ID for strong matching. RFS ensures that the ID of each stack set is different and does not change with updates. If the stack_set_id value is different from the current stack set ID, 400 is returned. Minimum: 36 Maximum: 36 |
| deployment_targets | Yes | deployment_targets object | Deployment target information. |
| template_body | No | String | HCL template, which describes the target status of a resource. RFS compares the difference between the statuses of this template and the current remote resource. You can specify either template_body or template_uri, not both. Note:
Minimum: 0 Maximum: 51200 |
| template_uri | No | String | OBS address of an HCL template. The template describes the target status of a resource. RFS compares the difference between the statuses of this template and the current remote resource. Ensure that the OBS address is located in the same region as the RFS. The corresponding file must be a tf file or a zip package. A .tf file must be named with a .tf or .tf.json suffix, compatible with HCL, and UTF-8 encoded. Currently, only the .zip package is supported. The file name extension must be .zip. The decompressed files cannot contain .tfvars files. The maximum size of the file is 1 MB before decompression and 1 MB after decompression. A maximum of 100 files can be archived to one .zip package. You can specify either template_body or template_uri, not both. Note:
Minimum: 0 Maximum: 2048 |
| vars_uri | No | String | OBS address of the HCL parameter file. Transferring parameters is supported by the HCL template. The same template can use different parameters for different purposes. Ensure that the OBS address is located in the same region as the RFS.
The content in vars_uri uses the tfvars format of HCL. You can save the content in .tfvars to a file, upload the file to OBS, and transfer the pre-signed URL of OBS to vars_uri.
Minimum: 0 Maximum: 2048 |
| vars_body | No | String | Content of the HCL variable file. Transferring parameters is supported by the HCL template. The same template can use different parameters for different purposes.
Minimum: 0 Maximum: 51200 |
| operation_preferences | No | operation_preferences object | The user-specified preferences for how to perform a stack set operation. This parameter takes effect only in a specified single operation. If this parameter is not specified, the default operation preferences is that only one stack is deployed at a time and after all stack instances in a region are deployed completely, the next region will be selected randomly for deployment. The default value of failure tolerance count in a region is 0. This parameter can be specified in the following APIs: CreateStackInstance, DeployStackSet, UpdateStackInstance, DeleteStackInstance. |
| call_identity | No | String | This parameter is only supported when the stack set permission model is SERVICE_MANAGED. Specify whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. No matter what call identity is specified, the stack set involved in request is always belonging to management account. |
Response Parameters
Status code: 202
| Parameter | Type | Description |
|---|---|---|
| stack_set_operation_id | String | Unique ID of a stack set operation. It is a UUID generated by RFS when a stack set operation is created. Minimum: 36 Maximum: 36 |
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 401
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 403
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 404
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 409
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 429
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
Example Requests
The following example shows how to pass template and parameter information using OBS Signed URL. Stack instances are deployed in sequential mode among regions.
POST https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/deployments
{
"template_uri" : "https://{bucket_name}.{region}.myhuaweicloud.com/my-hello-world-template.tf",
"vars_uri" : "https://{bucket_name}.{region}.myhuaweicloud.com/my-hello-world-vars.tfvars",
"stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4",
"deployment_targets" : {
"regions" : [ "cn-north-7" ],
"domain_ids" : [ "0e0bc7572c0dfb74efa6c60ecd7b1dbf" ]
},
"operation_preferences" : {
"region_concurrency_type" : "SEQUENTIAL"
}
} Example Responses
Status code: 202
The request is accepted and processed asynchronously.
{
"stack_set_operation_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3"
} Status Codes
| Status Code | Description |
|---|---|
| 202 | The request is accepted and processed asynchronously. |
| 400 | Invalid request. |
| 401 | Authentication failed. |
| 403 | |
| 404 | The stack set does not exist. |
| 409 | Request conflict. Another request is being processed on the current stack set. |
| 429 | Too frequent requests. |
| 500 | Internal server error. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.