Resource Orchestration Service (ROS) allows you to manage resources by using Terraform. This topic describes the ROS features and resources that are supported by Terraform.

Terraform and provider versions that are supported by ROS

The following table lists the Terraform and provider versions that are supported by ROS.

Terraform version Provider version
0.12.28
  • alicloud: 1.121.2
  • aws: 3.37.0
  • azurerm: 2.56.0
  • random: 3.1.0
  • template: 2.2.0
  • time: 0.7.0
0.15.3
  • alicloud: 1.123.0
  • aws: 3.42.0
  • azurerm: 2.59.0
  • random: 3.1.0
  • template: 2.2.0
  • time: 0.7.1
1.0.11
  • alicloud: 1.139.0 to 1.165.0
  • aws: 3.63.0 to 4.13.0
  • azurerm: 2.81.0 to 3.5.0
  • random: 3.1.0 to 3.1.3
  • template: 2.2.0
  • time: 0.7.2
  • fortios: 1.13.2 to 1.14.1
  • fortimanager: 1.3.4 to 1.4.0
  • helm: 2.3.0 to 2.5.1
  • kubernetes: 2.6.1 to 2.11.0
1.1.9
  • alicloud: 1.139.0 to 1.165.0
  • aws: 3.63.0 to 4.13.0
  • azurerm: 2.81.0 to 3.5.0
  • random: 3.1.0 to 3.1.3
  • template: 2.2.0
  • time: 0.7.2
  • fortios: 1.13.2 to 1.14.1
  • fortimanager: 1.3.4 to 1.4.0
  • helm: 2.3.0 to 2.5.1
  • kubernetes: 2.6.1 to 2.11.0
Note ROS updates the supported Terraform and provider versions on a regular basis. You can call the GetFeatureDetails operation to query the supported Terraform versions.

ROS features supported by Terraform

Item Supported feature Unsupported feature
Stack
  • You can preview, create, update, delete, and query stacks.
  • You can query resources, outputs, templates, stack events, and resource events.
  • When you create a stack, you can add the system tag acs:ros:stackId to specific resources in the stack. For more information, see the Resources that support system tags list in the ROS resources supported by Terraform topic.
  • When you create or update a stack, the tags that you set for the stack are propagated to specific resources in the stack. For more information, see the Resources that support the propagation of custom tags of stacks list in the ROS resources supported by Terraform topic.
  • When you create or update a stack, the resource group to which the stack belongs is propagated to specific resources in the stack. For more information, see the Resources that support the propagation of resource groups of stacks list in the ROS resources supported by Terraform topic.
  • You can specify a timeout period that ranges from 10 to 120 minutes, define the Parameters and Outputs sections, and continue to create a stack that is in the Creation Failed state. You can also configure resource status notifications, enable the deletion protection feature, and specify whether to retain all resources of a stack or retain specific resources of a stack when you delete the stack. You can manage RAM roles, tags, and resource groups.
  • You can manage change sets.
  • You can perform drift detection.
You cannot set the Rollback on Failure and Stack Policy parameters. You also cannot perform replacement updates, configure drift reconciliation, cancel the update of a stack, configure notifications for occurrences of events, import resources, or check for risks.
Stack group
  • You can create, update, delete, and query stack groups.
  • You can create, update, delete, and query stack instances. You can also query and stop stack operations.
  • You can manage tags and resource groups.
  • You can perform drift detection.
None
Template
  • You can create, update, delete, query, share, and validate templates.
  • You can query the prices of the resources that are used in the templates. For more information about the resources, see the Resources that support price inquiry list in the ROS resources supported by Terraform topic.
  • You can manage tags and resource groups.
You cannot query the RAM policy that is used to generate a template or query the values of template parameters.
Others
  • You can use Alibaba Cloud Security Token Service (STS).
  • You can query the service activation status and information about service roles.
  • You can query the details of features.
You cannot query resource types.

ROS API operations supported by Terraform

Item API operation
Stack PreviewStack, CreateStack, ContinueCreateStack, UpdateStack, DeleteStack, GetStack, ListStacks, ListStackResources, GetStackResource, ListStackEvents, and SetDeletionProtection
Note If you set the StackType parameter to Terraform when you call the GetStack or ListStacks operation, the Terraform stacks are queried.
Change set CreateChangeSet, ExecuteChangeSet, DeleteChangeSet, GetChangeSet, and ListChangeSets
Drift detection DetectStackDrift, DetectStackGroupDrift, GetStackDriftDetectionStatus, and ListStackResourceDrifts
Note You cannot call the DetectStackResourceDrift operation to perform drift detection on multiple resources at the same time.
Stack group CreateStackGroup, UpdateStackGroup, DeleteStackGroup, GetStackGroup, ListStackGroups, CreateStackInstances, UpdateStackInstances, DeleteStackInstances, GetStackInstance, ListStackInstances, StopStackGroupOperation, GetStackGroupOperation, ListStackGroupOperations, and ListStackGroupOperationResults
Template CreateTemplate, UpdateTemplate, DeleteTemplate, GetTemplate, ListTemplates, ListTemplateVersions, SetTemplatePermission, ValidateTemplate, and GetTemplateEstimateCost
Tag TagResources, UntagResources, ListTagKeys, ListTagValues, and ListTagResources
Resource group MoveResourceGroup
Others GetServiceProvisions and GetFeatureDetails

ROS resources supported by Terraform

Terraform in ROS supports the following resources provided by major cloud service providers:

  • Alibaba Cloud resources
    Note
    • Alibaba Cloud Terraform modules can be debugged online. For more information, see Alicloud Terraform Modules.
    • ROS provides a default provider that uses the temporary AccessKey pair or STS credential of your account and the region ID of your stack.

    Specific resources support price inquiry, system tags, and the propagation of custom tags and resource groups of stacks.

    Note You can call the GetFeatureDetails operation to query the types of resources that support price inquiry, system tags, and the propagation of custom tags and resource groups of stacks.
    • Resources that support price inquiry
      • Elastic Compute Service (ECS): alicloud_instance, alicloud_ecs_disk, alicloud_disk, and alicloud_ecs_dedicated_host
      • Virtual Private Cloud (VPC): alicloud_eip_address, alicloud_eip, alicloud_common_bandwidth_package, alicloud_nat_gateway, and alicloud_vpn_gateway
      • Server Load Balancer (SLB): alicloud_slb_load_balancer and alicloud_slb
      • ApsaraDB RDS: alicloud_db_instance and alicloud_db_readonly_instance
      • ApsaraDB for Redis: alicloud_kvstore_instance
      • PolarDB: alicloud_polardb_cluster
      • ApsaraDB for MongoDB: alicloud_mongodb_instance
      • Cloud Enterprise Network (CEN): alicloud_cen_bandwidth_package
      • Alibaba Cloud Marketplace: alicloud_market_order
      • PolarDB-X 1.0: alicloud_drds_instance
      • Elastic Container Instance: alicloud_eci_container_group
      • E-MapReduce (EMR): alicloud_emr_cluster
      • Elasticsearch: alicloud_elasticsearch_instance
      • Serverless App Engine (SAE): alicloud_sae_application
      • AnalyticDB for PostgreSQL: alicloud_gpdb_elastic_instance and alicloud_gpdb_instance
    • Resources that support system tags
      • ECS: alicloud_instance, alicloud_ecs_disk, alicloud_disk, alicloud_ecs_dedicated_host, alicloud_security_group, alicloud_key_pair, alicloud_ecs_launch_template, alicloud_ecs_network_interface, alicloud_image_copy, alicloud_image, alicloud_ecs_snapshot, and alicloud_snapshot
      • VPC: alicloud_eip_address, alicloud_eip, alicloud_common_bandwidth_package, alicloud_nat_gateway, alicloud_vpn_gateway, alicloud_vpc, and alicloud_vswitch
      • SLB: alicloud_slb_load_balancer and alicloud_slb
      • ApsaraDB RDS: alicloud_db_instance and alicloud_db_readonly_instance
      • ApsaraDB for Redis: alicloud_kvstore_instance
      • PolarDB: alicloud_polardb_cluster
      • ApsaraDB for MongoDB: alicloud_mongodb_instance
      • Elasticsearch: alicloud_elasticsearch_instance
      • AnalyticDB for PostgreSQL: alicloud_gpdb_elastic_instance and alicloud_gpdb_instance
    • Resources that support the propagation of custom tags of stacks
      • ECS: alicloud_instance, alicloud_ecs_disk, alicloud_disk, alicloud_ecs_dedicated_host, alicloud_security_group, alicloud_key_pair, alicloud_ecs_launch_template, alicloud_ecs_network_interface, alicloud_image_copy, alicloud_image, alicloud_ecs_snapshot, and alicloud_snapshot
      • VPC: alicloud_eip_address, alicloud_eip, alicloud_common_bandwidth_package, alicloud_nat_gateway, alicloud_vpn_gateway, alicloud_vpc, and alicloud_vswitch
      • SLB: alicloud_slb_load_balancer and alicloud_slb
      • ApsaraDB RDS: alicloud_db_instance and alicloud_db_readonly_instance
      • ApsaraDB for Redis: alicloud_kvstore_instance
      • PolarDB: alicloud_polardb_cluster
      • ApsaraDB for MongoDB: alicloud_mongodb_instance
      • CEN: alicloud_cen_bandwidth_package
      • PolarDB-X 1.0: alicloud_drds_instance
      • EMR: alicloud_emr_cluster
      • Elasticsearch: alicloud_elasticsearch_instance
      • AnalyticDB for PostgreSQL: alicloud_gpdb_elastic_instance and alicloud_gpdb_instance
    • Resources that support the propagation of resource groups of stacks
      • ECS: alicloud_instance, alicloud_ecs_disk, alicloud_disk, alicloud_ecs_dedicated_host, alicloud_security_group, alicloud_key_pair, alicloud_ecs_launch_template, alicloud_ecs_network_interface, alicloud_image_copy, alicloud_image, alicloud_snapshot, and alicloud_ecs_snapshot
      • VPC: alicloud_vpc, alicloud_common_bandwidth_package, alicloud_eip_address, and alicloud_eip
      • SLB: alicloud_slb_load_balancer and alicloud_slb
      • ApsaraDB RDS: alicloud_db_readonly_instance
      • ApsaraDB for Redis: alicloud_kvstore_instance
      • PolarDB: alicloud_db_instance and alicloud_polardb_cluster
      • ApsaraDB for MongoDB: alicloud_mongodb_instance
      • Elastic Container Instance: alicloud_eci_container_group
      • PolarDB-X 1.0: alicloud_drds_instance
      • EMR: alicloud_emr_cluster
      • Elasticsearch: alicloud_elasticsearch_instance
  • AWS resources
  • Azure resources