Skip to content

Commit fb7a356

Browse files
committed
update JSON
1 parent e77e87f commit fb7a356

File tree

3 files changed

+62
-50
lines changed

3 files changed

+62
-50
lines changed

.azuredevops/templates/steps/terraform-init-plan.yaml

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ parameters:
44
default: 'terraform'
55
displayName: 'Terraform Code Path'
66

7-
- name: TerraformStackToRun
7+
- name: TerraformStackToRunJson
88
type: string
99
default: '["all"]'
1010
displayName: 'Terraform Stacks to Run'
@@ -44,27 +44,27 @@ parameters:
4444
default: "false"
4545
displayName: 'Run Terraform Destroy'
4646

47-
- name: TerraformInitExtraArgs
47+
- name: TerraformInitExtraArgsJson
4848
type: string
4949
default: '[ ]'
5050
displayName: 'Extra Args for terraform init'
5151

52-
- name: TerraformPlanExtraArgs
52+
- name: TerraformPlanExtraArgsJson
5353
type: string
5454
default: '[ ]'
5555
displayName: 'Extra Args for terraform plan'
5656

57-
- name: TerraformPlanDestroyExtraArgs
57+
- name: TerraformPlanDestroyExtraArgsJson
5858
type: string
5959
default: '[ ]'
6060
displayName: 'Extra Args for terraform plan -destroy'
6161

62-
- name: TerraformApplyExtraArgs
62+
- name: TerraformApplyExtraArgsJson
6363
type: string
6464
default: '[ ]'
6565
displayName: 'Extra Args for terraform apply'
6666

67-
- name: TerraformDestroyExtraArgs
67+
- name: TerraformDestroyExtraArgsJson
6868
type: string
6969
default: '[ ]'
7070
displayName: 'Extra Args for terraform destroy'
@@ -241,37 +241,37 @@ steps:
241241

242242
- pwsh: |
243243
pwsh -File "$(Build.SourcesDirectory)\Run-AzTerraform.ps1" `
244-
-TerraformCodeLocation '${{ parameters.TerraformCodeLocation }}' `
245-
-TerraformStackToRunJson '${{ parameters.TerraformStackToRun }}' `
246-
-TerraformWorkspace '${{ parameters.TerraformWorkspace }}' `
247-
-RunTerraformInit '${{ parameters.RunTerraformInit }}' `
248-
-RunTerraformPlan '${{ parameters.RunTerraformPlan }}' `
249-
-RunTerraformPlanDestroy '${{ parameters.RunTerraformPlanDestroy }}' `
250-
-RunTerraformApply '${{ parameters.RunTerraformApply }}' `
251-
-RunTerraformDestroy '${{ parameters.RunTerraformDestroy }}' `
252-
-TerraformInitExtraArgs '${{ parameters.TerraformInitExtraArgs }}' `
253-
-TerraformPlanExtraArgs '${{ parameters.TerraformPlanExtraArgs }}' `
254-
-TerraformPlanDestroyExtraArgs '${{ parameters.TerraformPlanDestroyExtraArgs }}' `
255-
-TerraformApplyExtraArgs '${{ parameters.TerraformApplyExtraArgs }}' `
256-
-TerraformDestroyExtraArgs '${{ parameters.TerraformDestroyExtraArgs }}' `
257-
-DebugMode '${{ parameters.DebugMode }}' `
258-
-DeletePlanFiles '${{ parameters.DeletePlanFiles }}' `
259-
-TerraformVersion '${{ parameters.TerraformVersion }}' `
260-
-RunCheckov '${{ parameters.RunCheckov }}' `
261-
-CheckovSkipCheck '${{ parameters.CheckovSkipCheck }}' `
262-
-CheckovSoftfail '${{ parameters.CheckovSoftfail }}' `
263-
-TerraformPlanFileName '${{ parameters.TerraformPlanFileName }}' `
264-
-TerraformDestroyPlanFileName '${{ parameters.TerraformDestroyPlanFileName }}' `
265-
-CreateTerraformWorkspace '${{ parameters.CreateTerraformWorkspace }}' `
266-
-UseAzureClientSecretLogin '${{ parameters.UseAzureClientSecretLogin }}' `
267-
-UseAzureOidcLogin '${{ parameters.UseAzureOidcLogin }}' `
268-
-UseAzureUserLogin '${{ parameters.UseAzureUserLogin }}' `
269-
-UseAzureManagedIdentityLogin '${{ parameters.UseAzureManagedIdentityLogin }}' `
270-
-UseAzureServiceConnection '${{ parameters.UseAzureServiceConnection }}' `
271-
-InstallTenvTerraform '${{ parameters.InstallTenvTerraform }}' `
272-
-InstallAzureCli '${{ parameters.InstallAzureCli }}' `
273-
-AttemptAzureLogin '${{ parameters.AttemptAzureLogin }}' `
274-
-InstallCheckov '${{ parameters.InstallCheckov }}'
244+
-TerraformCodeLocation '${{ parameters.TerraformCodeLocation }}' `
245+
-TerraformStackToRunJson '${{ parameters.TerraformStackToRunJson }}' `
246+
-TerraformWorkspace '${{ parameters.TerraformWorkspace }}' `
247+
-RunTerraformInit '${{ parameters.RunTerraformInit }}' `
248+
-RunTerraformPlan '${{ parameters.RunTerraformPlan }}' `
249+
-RunTerraformPlanDestroy '${{ parameters.RunTerraformPlanDestroy }}' `
250+
-RunTerraformApply '${{ parameters.RunTerraformApply }}' `
251+
-RunTerraformDestroy '${{ parameters.RunTerraformDestroy }}' `
252+
-TerraformInitExtraArgsJson '${{ parameters.TerraformInitExtraArgs }}' `
253+
-TerraformPlanExtraArgsJson '${{ parameters.TerraformPlanExtraArgs }}' `
254+
-TerraformPlanDestroyExtraArgsJson '${{ parameters.TerraformPlanDestroyExtraArgs }}' `
255+
-TerraformApplyExtraArgsJson '${{ parameters.TerraformApplyExtraArgs }}' `
256+
-TerraformDestroyExtraArgsJson '${{ parameters.TerraformDestroyExtraArgs }}' `
257+
-DebugMode '${{ parameters.DebugMode }}' `
258+
-DeletePlanFiles '${{ parameters.DeletePlanFiles }}' `
259+
-TerraformVersion '${{ parameters.TerraformVersion }}' `
260+
-RunCheckov '${{ parameters.RunCheckov }}' `
261+
-CheckovSkipCheck '${{ parameters.CheckovSkipCheck }}' `
262+
-CheckovSoftfail '${{ parameters.CheckovSoftfail }}' `
263+
-TerraformPlanFileName '${{ parameters.TerraformPlanFileName }}' `
264+
-TerraformDestroyPlanFileName '${{ parameters.TerraformDestroyPlanFileName }}' `
265+
-CreateTerraformWorkspace '${{ parameters.CreateTerraformWorkspace }}' `
266+
-UseAzureClientSecretLogin '${{ parameters.UseAzureClientSecretLogin }}' `
267+
-UseAzureOidcLogin '${{ parameters.UseAzureOidcLogin }}' `
268+
-UseAzureUserLogin '${{ parameters.UseAzureUserLogin }}' `
269+
-UseAzureManagedIdentityLogin '${{ parameters.UseAzureManagedIdentityLogin }}' `
270+
-UseAzureServiceConnection '${{ parameters.UseAzureServiceConnection }}' `
271+
-InstallTenvTerraform '${{ parameters.InstallTenvTerraform }}' `
272+
-InstallAzureCli '${{ parameters.InstallAzureCli }}' `
273+
-AttemptAzureLogin '${{ parameters.AttemptAzureLogin }}' `
274+
-InstallCheckov '${{ parameters.InstallCheckov }}'
275275
name: RunAzTerraform
276276
displayName: 'Run Terraform orchestration'
277277
env:

.azuredevops/workflows/steps/terraform-init-plan.yaml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@ parameters:
1616
default: 'terraform'
1717
displayName: 'Terraform Code Directory Path'
1818

19-
- name: TerraformStackToRun
19+
- name: TerraformStackToRunJson
2020
type: string
21-
default: '"rg"'
21+
default: '["rg"]'
2222
values:
23-
- '"rg"'
24-
- '"network"'
25-
- '"all"'
23+
- '["rg"]'
24+
- '["network"]'
25+
- '["rg", "network"]'
26+
- '["all"]'
2627
displayName: 'Terraform Stacks to Run'
2728

29+
2830
- name: CreateTerraformWorkspace
2931
type: string
3032
values: [ "true", "false" ]
@@ -71,7 +73,7 @@ parameters:
7173
default: "true"
7274
displayName: "Debug mode enabled"
7375

74-
- name: TerraformInitExtraArgs
76+
- name: TerraformInitExtraArgsJson
7577
type: string
7678
default: >
7779
[
@@ -83,7 +85,7 @@ parameters:
8385
displayName: 'Extra Args for terraform init'
8486

8587

86-
- name: TerraformPlanExtraArgs
88+
- name: TerraformPlanExtraArgsJson
8789
type: string
8890
default: '[ ]'
8991
displayName: 'Extra Args for terraform plan'

Run-AzTerraform.ps1

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ param (
44
[string]$RunTerraformPlanDestroy = "false",
55
[string]$RunTerraformApply = "false",
66
[string]$RunTerraformDestroy = "false",
7-
[string[]]$TerraformInitExtraArgs = $null,
8-
[string[]]$TerraformPlanExtraArgs = $null,
9-
[string[]]$TerraformPlanDestroyExtraArgs = $null,
10-
[string[]]$TerraformApplyExtraArgs = $null,
11-
[string[]]$TerraformDestroyExtraArgs = $null,
7+
[string]$TerraformInitExtraArgsJson = '[]',
8+
[string]$TerraformPlanExtraArgsJson = '[]',
9+
[string]$TerraformPlanDestroyExtraArgsJson = '[]',
10+
[string]$TerraformApplyExtraArgsJson = '[]',
11+
[string]$TerraformDestroyExtraArgsJson = '[]',
1212
[string]$InstallTenvTerraform = "true",
1313
[string]$TerraformVersion = "latest",
1414
[string]$DebugMode = "false",
@@ -20,7 +20,7 @@ param (
2020
[string]$TerraformPlanFileName = "tfplan.plan",
2121
[string]$TerraformDestroyPlanFileName = "tfplan-destroy.plan",
2222
[string]$TerraformCodeLocation = "terraform",
23-
[string[]]$TerraformStackToRun = @('rg'), # Use 'all' to run 0_, 1_, etc and destroy in reverse order 1_, 0_ etc
23+
[string]$TerraformStackToRunJson = '["rg"]', # JSON format Use 'all' to run 0_, 1_, etc and destroy in reverse order 1_, 0_ etc
2424
[string]$CreateTerraformWorkspace = "true",
2525
[string]$TerraformWorkspace = "dev",
2626
[string]$InstallAzureCli = "false",
@@ -75,6 +75,16 @@ else
7575
try
7676
{
7777

78+
$TerraformStackToRun = $TerraformStackToRunJson | ConvertFrom-Json
79+
if (-not ($TerraformStackToRun -is [System.Collections.IEnumerable])) {
80+
throw "Parsed value of TerraformStackToRunJson is not an array."
81+
}
82+
$TerraformInitExtraArgs = $TerraformInitExtraArgsJson | ConvertFrom-Json
83+
$TerraformPlanExtraArgs = $TerraformPlanExtraArgsJson | ConvertFrom-Json
84+
$TerraformPlanDestroyExtraArgs = $TerraformPlanDestroyExtraArgsJson | ConvertFrom-Json
85+
$TerraformApplyExtraArgs = $TerraformApplyExtraArgsJson | ConvertFrom-Json
86+
$TerraformDestroyExtraArgs = $TerraformDestroyExtraArgsJson | ConvertFrom-Json
87+
7888
$convertedInstallTenvTerraform = ConvertTo-Boolean $InstallTenvTerraform
7989
_LogMessage -Level 'DEBUG' -Message "InstallTenvTerraform `"$InstallTenvTerraform`"$convertedInstallTenvTerraform" -InvocationName $MyInvocation.MyCommand.Name
8090

0 commit comments

Comments
 (0)