Skip to content

Commit e582417

Browse files
authored
Merge pull request #14 from aquasecurity/support_custom_names
Add support for custom resource names
2 parents 4a2f3b4 + 2de97c8 commit e582417

File tree

27 files changed

+305
-323
lines changed

27 files changed

+305
-323
lines changed

.github/workflows/pr-checks.yaml

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,18 @@ jobs:
1616
with:
1717
terraform_version: ${{ vars.TERRAFORM_VERSION }}
1818

19+
- name: Setup TFLint
20+
uses: terraform-linters/setup-tflint@v1
21+
with:
22+
tflint_version: ${{ vars.TFLINT_VERSION }}
23+
24+
- name: Run TFLint
25+
id: tflint
26+
run: tflint --config .tflint.hcl -f compact
27+
continue-on-error: true
28+
1929
- name: Run tests for each example folder
30+
id: terraform-checks
2031
run: |
2132
TEST_CASES=(
2233
examples/single-dedicated-project
@@ -27,6 +38,10 @@ jobs:
2738
examples/organization-dedicated-project
2839
)
2940
41+
format_check=true
42+
init_check=true
43+
validate_check=true
44+
3045
for tcase in ${TEST_CASES[@]}; do
3146
echo "--> Running tests at $tcase"
3247
(
@@ -38,28 +53,35 @@ jobs:
3853
sed -i 's/<REPLACE_ME>/dummy_value/g' *.tf
3954
fi
4055
echo "Terraform Format Check"
41-
terraform fmt -check
56+
terraform fmt -check || format_check=false
4257
echo "Terraform Init"
43-
terraform init
58+
terraform init || init_check=false
4459
echo "Terraform Validate"
45-
terraform validate
60+
terraform validate || validate_check=false
4661
) || exit 1
4762
done
4863
64+
echo "format_check=$format_check" >> $GITHUB_OUTPUT
65+
echo "init_check=$init_check" >> $GITHUB_OUTPUT
66+
echo "validate_check=$validate_check" >> $GITHUB_OUTPUT
67+
4968
- name: Comment PR with Terraform status
69+
if: always()
5070
uses: actions/github-script@v7
5171
env:
52-
FORMAT_CHECK: "Terraform Format Check"
53-
INIT_CHECK: "Terraform Init"
54-
VALIDATE_CHECK: "Terraform Validate"
72+
FORMAT_CHECK: ${{ steps.terraform-checks.outputs.format_check == 'true' && '✅' || '❌' }}
73+
INIT_CHECK: ${{ steps.terraform-checks.outputs.init_check == 'true' && '✅' || '❌' }}
74+
VALIDATE_CHECK: ${{ steps.terraform-checks.outputs.validate_check == 'true' && '✅' || '❌' }}
75+
TFLINT_CHECK: ${{ steps.tflint.outcome == 'success' && '✅' || '❌' }}
5576
with:
5677
github-token: ${{ secrets.GITHUB_TOKEN }}
5778
script: |
5879
const output = `#### Terraform Validation Results:
5980
60-
${{ env.FORMAT_CHECK }} ✅
61-
${{ env.INIT_CHECK }} ✅
62-
${{ env.VALIDATE_CHECK }} ✅
81+
Terraform Format Check ${{ env.FORMAT_CHECK }}
82+
Terraform Init ${{ env.INIT_CHECK }}
83+
Terraform Validate ${{ env.VALIDATE_CHECK }}
84+
TFLint Check ${{ env.TFLINT_CHECK }}
6385
6486
*Pusher: @${{ github.actor }}, Action: \`${{ github.event_name }}\`, Working Directory: \`${{ env.tf_actions_working_dir }}\`, Workflow: \`${{ github.workflow }}\`*`;
6587
@@ -68,4 +90,15 @@ jobs:
6890
owner: context.repo.owner,
6991
repo: context.repo.repo,
7092
body: output
71-
})
93+
})
94+
95+
- name: Fail if any checks failed
96+
if: always()
97+
run: |
98+
if [[ "${{ steps.terraform-checks.outputs.format_check }}" != "true" || \
99+
"${{ steps.terraform-checks.outputs.init_check }}" != "true" || \
100+
"${{ steps.terraform-checks.outputs.validate_check }}" != "true" || \
101+
"${{ steps.tflint.outcome }}" != "success" ]]; then
102+
echo "One or more Terraform checks failed"
103+
exit 1
104+
fi

.tflint.hcl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
rule "terraform_required_providers" {
2+
enabled = false
3+
source = false
4+
version = false
5+
}
6+
7+
rule "terraform_required_version" {
8+
enabled = false
9+
}

README.md

Lines changed: 82 additions & 261 deletions
Large diffs are not rendered by default.

examples/organization-dedicated-project/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ module "aqua_gcp_projects_attachment" {
123123
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding.workload_identity_pool_provider_id # Referencing outputs from the onboarding module
124124
onboarding_project_number = module.aqua_gcp_onboarding.project_number # Referencing outputs from the onboarding module
125125
onboarding_project_id = module.aqua_gcp_onboarding.project_id # Referencing outputs from the onboarding module
126+
onboarding_firewall_name = module.aqua_gcp_onboarding.custom_firewall_name # Referencing outputs from the onboarding module
127+
onboarding_dedicated_project_name = module.aqua_gcp_dedicated_project.project_id # Referencing outputs from the dedicated_project module
126128
depends_on = [module.aqua_gcp_onboarding]
127129
}
128130

examples/organization-same-project-list/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ module "aqua_gcp_projects_attachment" {
9797
onboarding_workload_identity_pool_id = module.aqua_gcp_onboarding[each.value].workload_identity_pool_id # Referencing outputs from the onboarding module
9898
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding[each.value].workload_identity_pool_provider_id # Referencing outputs from the onboarding module
9999
onboarding_project_number = module.aqua_gcp_onboarding[each.value].project_number # Referencing outputs from the onboarding module
100+
onboarding_firewall_name = module.aqua_gcp_onboarding[each.value].custom_firewall_name # Referencing outputs from the onboarding module
100101
onboarding_project_id = local.project_id
101102
depends_on = [module.aqua_gcp_onboarding, module.aqua_gcp_cspm_iam]
102103
}

examples/organization-same-project/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ module "aqua_gcp_projects_attachment" {
113113
onboarding_workload_identity_pool_id = module.aqua_gcp_onboarding[each.value].workload_identity_pool_id # Referencing outputs from the onboarding module
114114
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding[each.value].workload_identity_pool_provider_id # Referencing outputs from the onboarding module
115115
onboarding_project_number = module.aqua_gcp_onboarding[each.value].project_number # Referencing outputs from the onboarding module
116+
onboarding_firewall_name = module.aqua_gcp_onboarding[each.value].custom_firewall_name # Referencing outputs from the onboarding module
116117
onboarding_project_id = local.project_id
117118
depends_on = [module.aqua_gcp_onboarding, module.aqua_gcp_cspm_iam]
118119
}

examples/single-dedicated-project-addition/main.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ module "aqua_gcp_project_attachment" {
9696
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding.workload_identity_pool_provider_id # Referencing outputs from the onboarding module
9797
onboarding_project_number = module.aqua_gcp_onboarding.project_number # Referencing outputs from the onboarding module
9898
onboarding_project_id = module.aqua_gcp_onboarding.project_id # Referencing outputs from the onboarding module
99+
onboarding_firewall_name = module.aqua_gcp_onboarding.custom_firewall_name # Referencing outputs from the onboarding module
100+
onboarding_dedicated_project_name = module.aqua_gcp_dedicated_project.project_id # Referencing outputs from the dedicated_project module
99101
depends_on = [module.aqua_gcp_onboarding]
100102
}
101103

@@ -136,6 +138,8 @@ module "aqua_gcp_additional_project_attachment" {
136138
onboarding_workload_identity_pool_id = module.aqua_gcp_onboarding.workload_identity_pool_id # Referencing outputs from the onboarding module
137139
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding.workload_identity_pool_provider_id # Referencing outputs from the onboarding module
138140
onboarding_project_number = module.aqua_gcp_onboarding.project_number # Referencing outputs from the onboarding module
141+
onboarding_firewall_name = module.aqua_gcp_onboarding.custom_firewall_name # Referencing outputs from the onboarding module
142+
onboarding_dedicated_project_name = module.aqua_gcp_dedicated_project.project_id # Referencing outputs from the dedicated_project module
139143
onboarding_project_id = module.aqua_gcp_onboarding.project_id # Referencing outputs from the onboarding module
140144
depends_on = [module.aqua_gcp_onboarding]
141145
}

examples/single-dedicated-project/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ module "aqua_gcp_project_attachment" {
9696
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding.workload_identity_pool_provider_id # Referencing outputs from the onboarding module
9797
onboarding_project_number = module.aqua_gcp_onboarding.project_number # Referencing outputs from the onboarding module
9898
onboarding_project_id = module.aqua_gcp_onboarding.project_id # Referencing outputs from the onboarding module
99+
onboarding_firewall_name = module.aqua_gcp_onboarding.custom_firewall_name # Referencing outputs from the onboarding module
100+
onboarding_dedicated_project_name = module.aqua_gcp_dedicated_project.project_id # Referencing outputs from the dedicated_project module
99101
depends_on = [module.aqua_gcp_onboarding]
100102
}
101103

examples/single-same-project/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ module "aqua_gcp_project_attachment" {
7575
onboarding_workload_identity_pool_provider_id = module.aqua_gcp_onboarding.workload_identity_pool_provider_id # Referencing outputs from the onboarding module
7676
onboarding_project_number = module.aqua_gcp_onboarding.project_number # Referencing outputs from the onboarding module
7777
onboarding_project_id = module.aqua_gcp_onboarding.project_id # Referencing outputs from the onboarding module
78+
onboarding_firewall_name = module.aqua_gcp_onboarding.custom_firewall_name # Referencing outputs from the onboarding module
7879
depends_on = [module.aqua_gcp_onboarding]
7980
}
8081

locals.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ locals {
99
project_id = data.google_project.project.project_id
1010

1111
# Resource naming locals
12-
identity_pool_name = var.identity_pool_name != null ? var.identity_pool_name : "aqua-agentless-pool-${var.aqua_tenant_id}"
13-
identity_pool_provider_name = var.identity_pool_provider_name != null ? var.identity_pool_provider_name : "agentless-provider-${var.aqua_tenant_id}"
14-
service_account_name = var.service_account_name != null ? var.service_account_name : "aqua-agentless-sa-${var.aqua_tenant_id}"
15-
cspm_service_account_name = var.cspm_service_account_name != null ? var.cspm_service_account_name : "aqua-cspm-scanner-${var.aqua_tenant_id}"
16-
firewall_name = var.dedicated_project ? "${local.project_id}--rules-aqua-aas" : "${local.project_id}-rules-${var.aqua_tenant_id}-aqua-aas"
17-
network_name = var.dedicated_project ? "${local.project_id}-network" : "${local.project_id}-network-${var.aqua_tenant_id}"
18-
topic_name = var.topic_name != null ? var.topic_name : (var.dedicated_project ? "${local.project_id}-topic" : "${local.project_id}-topic-${var.aqua_tenant_id}")
19-
sink_name = var.sink_name != null ? var.sink_name : (var.dedicated_project ? "${local.project_id}-sink" : "${local.project_id}-sink-${var.aqua_tenant_id}")
20-
workflow_name = var.workflow_name != null ? var.workflow_name : (var.dedicated_project ? "${local.project_id}-workflow" : "${local.project_id}-workflow-${var.aqua_tenant_id}")
21-
trigger_name = var.trigger_name != null ? var.trigger_name : (var.dedicated_project ? "${local.project_id}-trigger" : "${local.project_id}-trigger-${var.aqua_tenant_id}")
12+
identity_pool_name = var.identity_pool_name != "" ? var.identity_pool_name : "aqua-agentless-pool-${var.aqua_tenant_id}"
13+
identity_pool_provider_name = var.identity_pool_provider_name != "" ? var.identity_pool_provider_name : "agentless-provider-${var.aqua_tenant_id}"
14+
service_account_name = var.service_account_name != "" ? var.service_account_name : "aqua-agentless-sa-${var.aqua_tenant_id}"
15+
cspm_service_account_name = var.cspm_service_account_name != "" ? var.cspm_service_account_name : "aqua-cspm-scanner-${var.aqua_tenant_id}"
16+
firewall_name = var.firewall_name != "" ? var.firewall_name : (var.dedicated_project ? "${local.project_id}--rules-aqua-aas" : "${local.project_id}-rules-${var.aqua_tenant_id}-aqua-aas")
17+
network_name = var.network_name != "" ? var.network_name : (var.dedicated_project ? "${local.project_id}-network" : "${local.project_id}-network-${var.aqua_tenant_id}")
18+
topic_name = var.topic_name != "" ? var.topic_name : (var.dedicated_project ? "${local.project_id}-topic" : "${local.project_id}-topic-${var.aqua_tenant_id}")
19+
sink_name = var.sink_name != "" ? var.sink_name : (var.dedicated_project ? "${local.project_id}-sink" : "${local.project_id}-sink-${var.aqua_tenant_id}")
20+
workflow_name = var.workflow_name != "" ? var.workflow_name : (var.dedicated_project ? "${local.project_id}-workflow" : "${local.project_id}-workflow-${var.aqua_tenant_id}")
21+
trigger_name = var.trigger_name != "" ? var.trigger_name : (var.dedicated_project ? "${local.project_id}-trigger" : "${local.project_id}-trigger-${var.aqua_tenant_id}")
2222
}

0 commit comments

Comments
 (0)