Skip to content

Commit 8d14a0a

Browse files
committed
Update pipelines
1 parent 088ec5e commit 8d14a0a

File tree

6 files changed

+253
-31
lines changed

6 files changed

+253
-31
lines changed

.azuredevops/workflows/jobs/dev/terraform-build.yaml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,6 @@ parameters:
5757
]
5858
displayName: 'Extra Args for terraform init'
5959

60-
- name: TerraformPlanExtraArgsJson
61-
type: string
62-
default: '[ ]'
63-
displayName: 'Extra Args for terraform plan'
64-
6560
- name: AzureDevOpsPoolName
6661
type: string
6762
default: "vmss-libd-uks-dev-02"
@@ -71,16 +66,6 @@ parameters:
7166
- "vmss-libd-uks-dev-02"
7267
displayName: 'The Pool Name for the Job to run on'
7368

74-
- name: AzurePipelinesVmImage
75-
type: string
76-
default: 'ubuntu-latest'
77-
displayName: 'If Azure Pipelines is selected, which vmImage to run'
78-
79-
- name: dependsOnJobs
80-
displayName: "Depends On"
81-
type: object
82-
default: [ ]
83-
8469
resources:
8570
repositories:
8671
- repository: githubTemplates
@@ -102,9 +87,7 @@ jobs:
10287
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
10388
DebugMode: ${{ parameters.DebugMode }}
10489
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
105-
TerraformPlanExtraArgsJson: ${{ parameters.TerraformPlanExtraArgsJson }}
10690
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
107-
dependsOnJobs: ${{ parameters.dependsOnJobs }}
10891

10992
- template: .azuredevops/templates/jobs/terraform-manual-approval.yaml@githubTemplates
11093
parameters:
@@ -119,6 +102,5 @@ jobs:
119102
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
120103
DebugMode: ${{ parameters.DebugMode }}
121104
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
122-
TerraformPlanExtraArgsJson: ${{ parameters.TerraformPlanExtraArgsJson }}
123105
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
124106
dependsOnJobs: [ ManualApprovalJob ]
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: terraform-destroy.yaml-$(Build.DefinitionName)-$(date:yyyyMMdd)$(rev:.r)
2+
3+
trigger: none
4+
5+
parameters:
6+
- name: ServiceConnection
7+
type: string
8+
default: "fedcred-msi-azdo-libredevops-4a23d149-8cee-4643-a57b-3b3db30e54ce"
9+
displayName: 'Azure DevOps Service Connection'
10+
values:
11+
- "spn-libd-uks-dev-mgmt-01-client-secret-enabled"
12+
- "spn-libd-uks-dev-mgmt-01"
13+
- "fedcred-msi-azdo-libredevops-4a23d149-8cee-4643-a57b-3b3db30e54ce"
14+
- "msi-azdo-libredevops-4a23d149-8cee-4643-a57b-3b3db30e54ce"
15+
- "uid-libd-uks-dev-mgmt-01"
16+
17+
- name: TerraformCodeLocation
18+
type: string
19+
default: 'terraform'
20+
displayName: 'Terraform Code Directory Path'
21+
22+
- name: TerraformStackToRunJson
23+
type: string
24+
default: '["rg"]'
25+
values:
26+
- '["rg"]'
27+
- '["network"]'
28+
- '["azdo-pipelines-setup"]'
29+
- '["rg", "network"]'
30+
- '["all"]'
31+
displayName: 'Terraform Stacks to Run'
32+
33+
- name: TerraformWorkspace
34+
type: string
35+
default: 'dev'
36+
displayName: 'Terraform Workspace Name'
37+
38+
- name: CheckovSkipCheck
39+
type: string
40+
default: 'CKV2_AZURE_31'
41+
displayName: 'Checkov Skip Checks (Comma-Separated)'
42+
43+
- name: DebugMode
44+
type: string
45+
values: [ "true", "false" ]
46+
default: "false"
47+
displayName: "Debug mode enabled"
48+
49+
- name: TerraformInitExtraArgsJson
50+
type: string
51+
default: >
52+
[
53+
"-backend-config=subscription_id=$(TF_VAR_ARM_BACKEND_SUBSCRIPTION_ID)",
54+
"-backend-config=resource_group_name=$(TF_VAR_ARM_BACKEND_STORAGE_RG_NAME)",
55+
"-backend-config=storage_account_name=$(TF_VAR_ARM_BACKEND_STORAGE_ACCOUNT)",
56+
"-backend-config=container_name=$(TF_VAR_ARM_BACKEND_CONTAINER_NAME)"
57+
]
58+
displayName: 'Extra Args for terraform init'
59+
60+
- name: AzureDevOpsPoolName
61+
type: string
62+
default: "vmss-libd-uks-dev-02"
63+
values:
64+
- "Default"
65+
- "Azure Pipelines"
66+
- "vmss-libd-uks-dev-02"
67+
displayName: 'The Pool Name for the Job to run on'
68+
69+
resources:
70+
repositories:
71+
- repository: githubTemplates
72+
type: github
73+
name: libre-devops/terraform-azure-azdo-pipeline-templates
74+
ref: main
75+
endpoint: libredevops
76+
77+
variables:
78+
- group: terraform-${{ parameters.TerraformWorkspace }}-vars
79+
80+
jobs:
81+
- template: .azuredevops/templates/jobs/terraform-init-plan-destroy.yaml@githubTemplates
82+
parameters:
83+
ServiceConnection: ${{ parameters.ServiceConnection }}
84+
TerraformCodeLocation: ${{ parameters.TerraformCodeLocation }}
85+
TerraformStackToRunJson: ${{ parameters.TerraformStackToRunJson }}
86+
TerraformWorkspace: ${{ parameters.TerraformWorkspace }}
87+
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
88+
DebugMode: ${{ parameters.DebugMode }}
89+
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
90+
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
91+
92+
- template: .azuredevops/templates/jobs/terraform-manual-approval.yaml@githubTemplates
93+
parameters:
94+
dependsOnJobs: [ TerraformInitPlanJob ]
95+
96+
- template: .azuredevops/templates/jobs/terraform-init-plan-destroy-apply.yaml@githubTemplates
97+
parameters:
98+
ServiceConnection: ${{ parameters.ServiceConnection }}
99+
TerraformCodeLocation: ${{ parameters.TerraformCodeLocation }}
100+
TerraformStackToRunJson: ${{ parameters.TerraformStackToRunJson }}
101+
TerraformWorkspace: ${{ parameters.TerraformWorkspace }}
102+
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
103+
DebugMode: ${{ parameters.DebugMode }}
104+
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
105+
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
106+
dependsOnJobs: [ ManualApprovalJob ]

.azuredevops/workflows/stages/dev/terraform-build.yaml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: terraform-init-build.yaml-$(Build.DefinitionName)-$(date:yyyyMMdd)$(rev:.r)
1+
name: terraform-build.yaml-$(Build.DefinitionName)-$(date:yyyyMMdd)$(rev:.r)
22

33
trigger: none
44

@@ -57,11 +57,6 @@ parameters:
5757
]
5858
displayName: 'Extra Args for terraform init'
5959

60-
- name: TerraformPlanExtraArgsJson
61-
type: string
62-
default: '[ ]'
63-
displayName: 'Extra Args for terraform plan'
64-
6560
- name: AzureDevOpsPoolName
6661
type: string
6762
default: "vmss-libd-uks-dev-02"
@@ -71,11 +66,6 @@ parameters:
7166
- "vmss-libd-uks-dev-02"
7267
displayName: 'The Pool Name for the Job to run on'
7368

74-
- name: AzurePipelinesVmImage
75-
type: string
76-
default: 'ubuntu-latest'
77-
displayName: 'If Azure Pipelines is selected, which vmImage to run'
78-
7969
resources:
8070
repositories:
8171
- repository: githubTemplates
@@ -97,7 +87,6 @@ stages:
9787
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
9888
DebugMode: ${{ parameters.DebugMode }}
9989
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
100-
TerraformPlanExtraArgsJson: ${{ parameters.TerraformPlanExtraArgsJson }}
10190
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
10291

10392
- template: .azuredevops/templates/stages/terraform-manual-approval.yaml@githubTemplates
@@ -113,6 +102,5 @@ stages:
113102
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
114103
DebugMode: ${{ parameters.DebugMode }}
115104
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
116-
TerraformPlanExtraArgsJson: ${{ parameters.TerraformPlanExtraArgsJson }}
117105
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
118106
dependsOnStages: [ ManualApprovalStage ]
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: terraform-destroy.yaml-$(Build.DefinitionName)-$(date:yyyyMMdd)$(rev:.r)
2+
3+
trigger: none
4+
5+
parameters:
6+
- name: ServiceConnection
7+
type: string
8+
default: "fedcred-msi-azdo-libredevops-4a23d149-8cee-4643-a57b-3b3db30e54ce"
9+
displayName: 'Azure DevOps Service Connection'
10+
values:
11+
- "spn-libd-uks-dev-mgmt-01-client-secret-enabled"
12+
- "spn-libd-uks-dev-mgmt-01"
13+
- "fedcred-msi-azdo-libredevops-4a23d149-8cee-4643-a57b-3b3db30e54ce"
14+
- "msi-azdo-libredevops-4a23d149-8cee-4643-a57b-3b3db30e54ce"
15+
- "uid-libd-uks-dev-mgmt-01"
16+
17+
- name: TerraformCodeLocation
18+
type: string
19+
default: 'terraform'
20+
displayName: 'Terraform Code Directory Path'
21+
22+
- name: TerraformStackToRunJson
23+
type: string
24+
default: '["rg"]'
25+
values:
26+
- '["rg"]'
27+
- '["network"]'
28+
- '["azdo-pipelines-setup"]'
29+
- '["rg", "network"]'
30+
- '["all"]'
31+
displayName: 'Terraform Stacks to Run'
32+
33+
- name: TerraformWorkspace
34+
type: string
35+
default: 'dev'
36+
displayName: 'Terraform Workspace Name'
37+
38+
- name: CheckovSkipCheck
39+
type: string
40+
default: 'CKV2_AZURE_31'
41+
displayName: 'Checkov Skip Checks (Comma-Separated)'
42+
43+
- name: DebugMode
44+
type: string
45+
values: [ "true", "false" ]
46+
default: "false"
47+
displayName: "Debug mode enabled"
48+
49+
- name: TerraformInitExtraArgsJson
50+
type: string
51+
default: >
52+
[
53+
"-backend-config=subscription_id=$(TF_VAR_ARM_BACKEND_SUBSCRIPTION_ID)",
54+
"-backend-config=resource_group_name=$(TF_VAR_ARM_BACKEND_STORAGE_RG_NAME)",
55+
"-backend-config=storage_account_name=$(TF_VAR_ARM_BACKEND_STORAGE_ACCOUNT)",
56+
"-backend-config=container_name=$(TF_VAR_ARM_BACKEND_CONTAINER_NAME)"
57+
]
58+
displayName: 'Extra Args for terraform init'
59+
60+
- name: AzureDevOpsPoolName
61+
type: string
62+
default: "vmss-libd-uks-dev-02"
63+
values:
64+
- "Default"
65+
- "Azure Pipelines"
66+
- "vmss-libd-uks-dev-02"
67+
displayName: 'The Pool Name for the Job to run on'
68+
69+
resources:
70+
repositories:
71+
- repository: githubTemplates
72+
type: github
73+
name: libre-devops/terraform-azure-azdo-pipeline-templates
74+
ref: main
75+
endpoint: libredevops
76+
77+
variables:
78+
- group: terraform-${{ parameters.TerraformWorkspace }}-vars
79+
80+
stages:
81+
- template: .azuredevops/templates/stages/terraform-init-plan-destroy.yaml@githubTemplates
82+
parameters:
83+
ServiceConnection: ${{ parameters.ServiceConnection }}
84+
TerraformCodeLocation: ${{ parameters.TerraformCodeLocation }}
85+
TerraformStackToRunJson: ${{ parameters.TerraformStackToRunJson }}
86+
TerraformWorkspace: ${{ parameters.TerraformWorkspace }}
87+
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
88+
DebugMode: ${{ parameters.DebugMode }}
89+
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
90+
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
91+
92+
- template: .azuredevops/templates/stages/terraform-manual-approval.yaml@githubTemplates
93+
parameters:
94+
dependsOnStages: [ TerraformInitPlanStage ]
95+
96+
- template: .azuredevops/templates/stages/terraform-init-plan-destroy-apply.yaml@githubTemplates
97+
parameters:
98+
ServiceConnection: ${{ parameters.ServiceConnection }}
99+
TerraformCodeLocation: ${{ parameters.TerraformCodeLocation }}
100+
TerraformStackToRunJson: ${{ parameters.TerraformStackToRunJson }}
101+
TerraformWorkspace: ${{ parameters.TerraformWorkspace }}
102+
CheckovSkipCheck: ${{ parameters.CheckovSkipCheck }}
103+
DebugMode: ${{ parameters.DebugMode }}
104+
TerraformInitExtraArgsJson: ${{ parameters.TerraformInitExtraArgsJson }}
105+
AzureDevOpsPoolName: ${{ parameters.AzureDevOpsPoolName }}
106+
dependsOnStages: [ ManualApprovalStage ]

terraform/allstackskip-99_azdo-pipelines-setup/build-jobs.tf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,24 @@ resource "azuredevops_build_definition" "job_terraform_build" {
1616
yml_path = ".azuredevops/workflows/jobs/${each.key}/terraform-build.yaml"
1717
service_connection_id = data.azuredevops_serviceendpoint_github.github.id
1818
}
19+
}
20+
21+
resource "azuredevops_build_definition" "job_terraform_destroy" {
22+
for_each = local.envs
23+
project_id = data.azuredevops_project.target.id
24+
name = "${title(local.repo_name)} - ${title(each.key)} - Terraform Destroy"
25+
path = "${local.folders_path[each.key]}\\jobs"
26+
agent_pool_name = "Default"
27+
28+
ci_trigger {
29+
use_yaml = false
30+
}
31+
32+
repository {
33+
repo_type = "GitHub"
34+
repo_id = "${var.github_org_name}/${var.github_project_name}"
35+
branch_name = local.default_branch
36+
yml_path = ".azuredevops/workflows/jobs/${each.key}/terraform-destroy.yaml"
37+
service_connection_id = data.azuredevops_serviceendpoint_github.github.id
38+
}
1939
}

terraform/allstackskip-99_azdo-pipelines-setup/build-stages.tf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,24 @@ resource "azuredevops_build_definition" "stage_terraform_build" {
1616
yml_path = ".azuredevops/workflows/stages/${each.key}/terraform-build.yaml"
1717
service_connection_id = data.azuredevops_serviceendpoint_github.github.id
1818
}
19+
}
20+
21+
resource "azuredevops_build_definition" "stage_terraform_destroy" {
22+
for_each = local.envs
23+
project_id = data.azuredevops_project.target.id
24+
name = "${title(local.repo_name)} - ${title(each.key)} - Terraform Destroy"
25+
path = "${local.folders_path[each.key]}\\stages"
26+
agent_pool_name = "Default"
27+
28+
ci_trigger {
29+
use_yaml = false
30+
}
31+
32+
repository {
33+
repo_type = "GitHub"
34+
repo_id = "${var.github_org_name}/${var.github_project_name}"
35+
branch_name = local.default_branch
36+
yml_path = ".azuredevops/workflows/stages/${each.key}/terraform-destroy.yaml"
37+
service_connection_id = data.azuredevops_serviceendpoint_github.github.id
38+
}
1939
}

0 commit comments

Comments
 (0)