Steps
- Steps follow a folder naming convention of
step{progressionLevel}_{stepName}
- A Step's Progression Level identifies the ordering of execution.
- All steps receive a common set of input variables (see below)
- All steps receive the output variables of the steps in the progression level ahead of them.
- For example:
- output variables of
step1
will be sent intostep2
- output variables of
step1
andstep2
will be passed intostep3
- so on, so forth
- output variables of
- For example:
- Steps will automatically execute tests after a successful deployment, these are primarily used for smoke testing (see below)
- Steps have two types of deployment,
Primary
andRegional
.
Execution Patterns
In the following Track directories:
Concurrent Steps
project
├── step1_aws
└── step1_onprem_adgroups
step1_aws
and step1_onprem_adgroups
will be executed at concurrently at the same time.
Sequential Steps
project
├── step1_vpc
└── step2_egress_proxy
step1_vpc
will be executed first and after completion step2_egress_proxy
will be executed.
Concurrent and Sequential Steps
project
├── step1_vpc
├── step1_aws
└── step2_cool_step
└── step2_special_step
└── step3_something_awesome
step1_vpc
andstep1_aws
will be executed first concurrently at the same time.- After completion of both
step2_cool_step
andstep2_special_step
will be executed concurrently at the same time. a. The output variables of bothstep1
's will be passed intostep2
steps - After completion of both
step2
's,step3_something_awesome
will be executed. a. The output variables of allstep1
andstep2
's will be passed intostep3
steps
Step Deployment Types
Step deployment types facilitate multi-region deployments. runiac will first execute every primary step deployment type in a track.
If the primary region deployment is successful, runiac will then run each step's regional deployment type (regional
) concurrently across each region defined in regional_regions
.
Primary
Primary deployments represent all iac in the top level directory of the executing step.
Currently, the primary deployment type is executed once per region group.
For example, in the us
region group, the primary code would only be executed in the primary region of the us
region group, us-east-1
.
tracks/network
├── step1_vpc
├──--- *.tf
Regional
Regional deployments represent iac in the regional
directory of the executing step. This code will be executed concurrently N
times based on N
count of regions defined in regional_regions
configuration.
tracks/network
├── step1_vpc
├──--- regional
├──--------*.tf