Skip to main content

Configuration Reference

Iact3 configuration is YAML. The default project file is .iact3.yml; the default global file is ~/.iact3.yml.

Full shape

general:
auth:
name: default
location: ~/.aliyun/config.json
regions:
- cn-hangzhou
parameters:
KeyPairName: my-key-pair
tags:
environment: test
oss_config:
bucket_name: my-report-bucket
bucket_region: cn-hangzhou
object_prefix: iact3-runs
project:
name: ecs-smoke
regions:
- cn-hangzhou
- cn-beijing
template_config:
template_location: ecs.template.yml
parameters:
InstanceChargeType: PostPaid
tags:
project: ecs-smoke
tests:
small:
regions:
- cn-hangzhou
parameters:
InstanceType: ecs.g6.large
VpcId: $[iact3-auto]
VSwitchId: $[iact3-auto]
SecurityGroupId: $[iact3-auto]

Merge rules

Iact3 merges global config, project config, and CLI arguments. For most keys, the more specific value wins.

For parameters, Iact3 merges maps so generic values can live in ~/.iact3.yml, while test cases override only the values they need.

general:
parameters:
KeyPairName: account-key
project:
parameters:
InstanceChargeType: PostPaid
tests:
default:
parameters:
InstanceType: ecs.g6.large

The effective test receives all three parameters.

general

FieldMeaning
authAliyun CLI profile name and config file location.
regionsDefault region list.
parametersDefault template parameters.
tagsDefault stack tags.
oss_configOSS bucket used for report and hook output upload.

project

project inherits the same fields as general and adds:

FieldMeaning
nameProject name used in stack tags and report names.
role_nameRole name field in the configuration model. Do not rely on it unless your current Iact3 version maps it to the ROS API path you use.
template_configTemplate source.
hooksCommands run before or after create/delete phases.

tests

Each key under tests is a test name. A test can override regions, parameters, tags, template_config, and hooks.

tests:
postpaid:
parameters:
InstanceChargeType: PostPaid
prepaid:
parameters:
InstanceChargeType: PrePaid

Template config

FieldMeaning
template_locationLocal template file or directory.
template_bodyInline template body.
template_urloss://, http://, https://, or file:// template URL.
template_idROS template ID.
template_versionROS template version.
tf_versionROS Terraform Transform version. Defaults to Aliyun::Terraform-v1.2.

OSS config

project:
oss_config:
bucket_name: my-report-bucket
bucket_region: cn-hangzhou
object_prefix: nightly
callback_params:
callback_url: https://example.com/callback
callback_host: example.com
callback_body: '{"run": "${object}"}'
callback_body_type: application/json

When oss_config is present, Iact3 can upload hook output and reports to OSS.

Hooks

Hooks can run before and after stack creation and deletion.

tests:
default:
hooks:
post-create:
execute_time: PostCreate
execute_command:
- sh
- scripts/check-endpoint.sh
- --stack
- $[stack.name]
- --region
- $[stack.region]
- --endpoint
- $[outputs.Endpoint]

Supported execute_time values:

  • PreCreate
  • PostCreate
  • PreDelete
  • PostDelete

Supported runtime substitutions include stack name, stack region, and stack outputs in the form $[outputs.OutputName].

Authentication config

general:
auth:
name: default
location: ~/.aliyun/config.json

If auth is omitted, Iact3 falls back to the default Aliyun CLI config path.