terraform-google-modules / terraform-example-foundation

Shows how the CFT modules can be composed to build a secure cloud foundation
https://cloud.google.com/architecture/security-foundations
Apache License 2.0
1.2k stars 706 forks source link

Eliminate the hardcoding of IP addresses in "3-networks hub & spoke" - use module variables and tfvars #1152

Closed mromascanu123 closed 2 months ago

mromascanu123 commented 5 months ago

TL;DR

Examples envs/development/main.tf envs/non-production/main.tf
envs/production/main.tf
locals ... module "base_env" { ... enable_partner_interconnect = false base_private_service_connect_ip = "10.17.0.2" restricted_private_service_connect_ip = "10.17.0.6"

Also as an example in envs/shared/hierarchical_firewall.tf module "hierarchical_firewall_policy" { rules = { envs/shared/net-hubs-transitivity.tf, envs/shared/net-hubs.tf : in locals

etc...

Terraform Resources

No response

Detailed design

Ideally provide top level configuration propagated to modules
Or at least package top-level tfvar, included beneath,  files with instructions on parameterization

Additional information

No response

obriensystems commented 5 months ago

Prioritizing....

mromascanu123 commented 4 months ago

It is much more hardcoding around - hundreds of instances of it deep down in the code: 48 occurrences in the main.tf under 3-networks-hub-and-spoke/envs/ (development, production and non-production) 37 occurrences under 3-networks-hub-and-spoke/envs/shared/dns-hub.tf (dns-hub.tf, hierarchical_firewall.tf, net-hub-transitivity.tf, net-hubs.tf) and 14 more under 3-networks-hub-and-spoke/modules Similarly under 3-networks-dual-svpc

Then under 4-projects the subnet IP range is hardcodes in main.tf for each of the environments (development, production, non-production) for each of business_unit_1 and _2

All this hardcoding must be replaced with var-based expressions

And I would suggest to label it not as "enhancement" but "fixing poor coding practice"

fmichaelobrien commented 4 months ago

stale bot timer restart - https://github.com/terraform-google-modules/terraform-example-foundation/blob/master/.github/workflows/stale.yml#L21

sleighton2022 commented 2 months ago

Put as part of backlog for #1226