diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 18a2a3c..6535199 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,7 +11,7 @@ repos: - id: check-symlinks - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.92.0 + rev: v1.92.1 hooks: - id: terraform_fmt @@ -29,7 +29,7 @@ repos: - id: terraform_docs - repo: https://github.com/bridgecrewio/checkov.git - rev: 3.2.213 + rev: 3.2.219 hooks: - id: checkov verbose: true diff --git a/README.md b/README.md index 706ecd4..bc2089f 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ terraform test | Name | Version | |------|---------| -| google | 5.38.0 | +| google | 5.40.0 | ### Resources diff --git a/regional/README.md b/regional/README.md index 219effc..b457ad7 100644 --- a/regional/README.md +++ b/regional/README.md @@ -11,7 +11,7 @@ No requirements. | Name | Version | |------|---------| -| [google](#provider\_google) | 5.38.0 | +| [google](#provider\_google) | 5.40.0 | ## Modules diff --git a/regional/nat/README.md b/regional/nat/README.md index 85f7cba..03e1998 100644 --- a/regional/nat/README.md +++ b/regional/nat/README.md @@ -11,7 +11,7 @@ No requirements. | Name | Version | |------|---------| -| [google](#provider\_google) | 5.38.0 | +| [google](#provider\_google) | 5.40.0 | ## Modules diff --git a/tests/default.tftest.hcl b/tests/default.tftest.hcl index b3537cc..90dc9ae 100644 --- a/tests/default.tftest.hcl +++ b/tests/default.tftest.hcl @@ -3,22 +3,15 @@ mock_provider "google" {} run "default" { command = apply - module { + module { source = "./tests/fixtures/default" } - assert { - condition = module.test.name == "test-vpc" - error_message = "The VPC name does not match the expected value 'test-vpc'." - } + # Example assertion assert { - condition = module.test.project == "test-default-tf75-sb" - error_message = "The project ID does not match the expected value 'test-default-tf75-sb'." - } - - variables { - project = "test-default-tf75-sb" + condition = module.test.name == "mock-vpc" + error_message = "The VPC name does not match the expected value 'mock-vpc'." } } @@ -28,10 +21,6 @@ run "dns" { module { source = "./tests/fixtures/default/dns" } - - variables { - project = "test-default-tf75-sb" - } } run "regional" { @@ -40,10 +29,6 @@ run "regional" { module { source = "./tests/fixtures/default/regional" } - - variables { - project = "test-default-tf75-sb" - } } run "regional_nat" { @@ -52,8 +37,9 @@ run "regional_nat" { module { source = "./tests/fixtures/default/regional_nat" } +} - variables { - project = "test-default-tf75-sb" - } +variables { + project = "mock-project" + environment = "mock-environment" } diff --git a/tests/fixtures/default/dns/locals.tf b/tests/fixtures/default/dns/locals.tf new file mode 100644 index 0000000..e9a4f77 --- /dev/null +++ b/tests/fixtures/default/dns/locals.tf @@ -0,0 +1,12 @@ +# Local Values +# https://www.terraform.io/docs/language/values/locals.html + +locals { + labels = { + cost-center = "mock-x001" + env = var.environment + repository = "mock-repository" + platform = "mock-platform" + team = "mock-team" + } +} diff --git a/tests/fixtures/default/dns/main.tf b/tests/fixtures/default/dns/main.tf index 5513957..39ba8f4 100644 --- a/tests/fixtures/default/dns/main.tf +++ b/tests/fixtures/default/dns/main.tf @@ -1,6 +1,3 @@ -# Required Providers -# https://developer.hashicorp.com/terraform/language/providers/requirements - terraform { required_providers { google = { @@ -12,16 +9,9 @@ terraform { module "public_test" { source = "../../../../dns" - dns_name = "gcp.osinfra.io." - - labels = { - cost-center = "x000" - env = "sb" - repository = "terraform-google-cloud-dns" - team = "testing" - } - - name = "gcp-osinfra-io" + dns_name = "mock-subdomain.mock-domain.io." + labels = local.labels + name = "mock-subdomain-mock-domain" project = var.project visibility = "public" } @@ -29,17 +19,10 @@ module "public_test" { module "private_test" { source = "../../../../dns" - dns_name = "gcp-priv.osinfra.io." - - labels = { - cost-center = "x000" - env = "sb" - repository = "terraform-google-cloud-dns" - team = "testing" - } - - name = "gcp-priv-osinfra-io" - private_visibility_config_networks = ["https://www.googleapis.com/compute/v1/projects/${var.project}/global/networks/terraform-test-vpc"] + dns_name = "mock-priv-subdomain.mock-domain." + labels = local.labels + name = "mock-priv-subdomain-mock-domain" + private_visibility_config_networks = ["https://www.googleapis.com/compute/v1/projects/${var.project}/global/networks/mock-vpc"] project = var.project visibility = "private" } diff --git a/tests/fixtures/default/dns/variables.tf b/tests/fixtures/default/dns/variables.tf index e47327f..c4f0540 100644 --- a/tests/fixtures/default/dns/variables.tf +++ b/tests/fixtures/default/dns/variables.tf @@ -1,4 +1,7 @@ +variable "environment" { + type = string +} + variable "project" { - type = string - default = "test-default-tf75-sb" + type = string } diff --git a/tests/fixtures/default/locals.tf b/tests/fixtures/default/locals.tf new file mode 100644 index 0000000..e9a4f77 --- /dev/null +++ b/tests/fixtures/default/locals.tf @@ -0,0 +1,12 @@ +# Local Values +# https://www.terraform.io/docs/language/values/locals.html + +locals { + labels = { + cost-center = "mock-x001" + env = var.environment + repository = "mock-repository" + platform = "mock-platform" + team = "mock-team" + } +} diff --git a/tests/fixtures/default/main.tf b/tests/fixtures/default/main.tf index 9b5d6c7..f27bd45 100644 --- a/tests/fixtures/default/main.tf +++ b/tests/fixtures/default/main.tf @@ -1,6 +1,3 @@ -# Required Providers -# https://developer.hashicorp.com/terraform/language/providers/requirements - terraform { required_providers { google = { @@ -12,7 +9,7 @@ terraform { module "test" { source = "../../.." - name = "test-vpc" + name = "mock-vpc" project = var.project # The following rules test each of the dynamic blocks in various combinations. This should @@ -33,7 +30,7 @@ module "test" { direction = "INGRESS" - name = "test-01" + name = "mock-rule-01" ranges = [ "130.211.0.0/22", @@ -70,8 +67,5 @@ module "test" { } ] - # In order to test this we would need a new project created in the google-cloud-terraform-testing - # repository. The existing projects are already a shared VPC host or service projects. - - shared_vpc = false + shared_vpc = true } diff --git a/tests/fixtures/default/regional/locals.tf b/tests/fixtures/default/regional/locals.tf new file mode 100644 index 0000000..e9a4f77 --- /dev/null +++ b/tests/fixtures/default/regional/locals.tf @@ -0,0 +1,12 @@ +# Local Values +# https://www.terraform.io/docs/language/values/locals.html + +locals { + labels = { + cost-center = "mock-x001" + env = var.environment + repository = "mock-repository" + platform = "mock-platform" + team = "mock-team" + } +} diff --git a/tests/fixtures/default/regional/main.tf b/tests/fixtures/default/regional/main.tf index f23018d..8b90a30 100644 --- a/tests/fixtures/default/regional/main.tf +++ b/tests/fixtures/default/regional/main.tf @@ -1,6 +1,3 @@ -# Required Providers -# https://developer.hashicorp.com/terraform/language/providers/requirements - terraform { required_providers { google = { @@ -13,15 +10,15 @@ module "test" { source = "../../../../regional" ip_cidr_range = "10.60.32.0/20" - name = "terraform-test-subnet-us-east1" - network = "terraform-test-vpc" + name = "mock-subnet-us-east1" + network = "mock-vpc" # When enabled, VMs in this subnetwork without external IP addresses can access Google APIs and # services by using Private Google Access. This is required for private Kubernetes clusters. private_ip_google_access = true project = var.project - region = "us-east1" + region = "mock-region" # Secondary ranges are used to allocate IP addresses to resources in a subnetwork. In this example we create Pod IP address ranges # and Service (ClusterIP) address ranges for a VPC-native cluster. @@ -30,11 +27,11 @@ module "test" { secondary_ip_ranges = [ { - range_name = "k8s-services-us-east1" + range_name = "mock-secondary-services" ip_cidr_range = "10.61.16.0/20" }, { - range_name = "k8s-pods-us-east1" + range_name = "mock-secondary-pods" ip_cidr_range = "10.8.0.0/14" } ] diff --git a/tests/fixtures/default/regional/outputs.tf b/tests/fixtures/default/regional/outputs.tf deleted file mode 100644 index f15193c..0000000 --- a/tests/fixtures/default/regional/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "project" { - value = var.project -} diff --git a/tests/fixtures/default/regional/variables.tf b/tests/fixtures/default/regional/variables.tf index e47327f..c4f0540 100644 --- a/tests/fixtures/default/regional/variables.tf +++ b/tests/fixtures/default/regional/variables.tf @@ -1,4 +1,7 @@ +variable "environment" { + type = string +} + variable "project" { - type = string - default = "test-default-tf75-sb" + type = string } diff --git a/tests/fixtures/default/regional_nat/locals.tf b/tests/fixtures/default/regional_nat/locals.tf new file mode 100644 index 0000000..e9a4f77 --- /dev/null +++ b/tests/fixtures/default/regional_nat/locals.tf @@ -0,0 +1,12 @@ +# Local Values +# https://www.terraform.io/docs/language/values/locals.html + +locals { + labels = { + cost-center = "mock-x001" + env = var.environment + repository = "mock-repository" + platform = "mock-platform" + team = "mock-team" + } +} diff --git a/tests/fixtures/default/regional_nat/main.tf b/tests/fixtures/default/regional_nat/main.tf index 9349834..131213e 100644 --- a/tests/fixtures/default/regional_nat/main.tf +++ b/tests/fixtures/default/regional_nat/main.tf @@ -1,6 +1,3 @@ -# Required Providers -# https://developer.hashicorp.com/terraform/language/providers/requirements - terraform { required_providers { google = { @@ -12,18 +9,18 @@ terraform { module "all_subnets_test" { source = "../../../../regional/nat" - network = "terraform-test-vpc" + network = "mock-vpc" project = var.project - region = "us-east1" + region = "mock-region" } module "list_of_subnets_test" { source = "../../../../regional/nat" - network = "terraform-test-vpc" - prefix = "terraform-test-vpc-subnetworks" + network = "mock-vpc" + prefix = "mock-vpc-subnetworks" project = var.project - region = "us-east1" + region = "mock-region" source_subnetwork_ip_ranges_to_nat = "LIST_OF_SUBNETWORKS" - subnetwork_names = ["fleet-member-us-east1"] + subnetwork_names = ["mock-subnetwork"] } diff --git a/tests/fixtures/default/regional_nat/outputs.tf b/tests/fixtures/default/regional_nat/outputs.tf deleted file mode 100644 index 4f38451..0000000 --- a/tests/fixtures/default/regional_nat/outputs.tf +++ /dev/null @@ -1,10 +0,0 @@ -# Terraform Output Values -# https://www.terraform.io/language/values/outputs - -output "name" { - value = module.all_subnets_test.name -} - -output "project" { - value = module.all_subnets_test.project -} diff --git a/tests/fixtures/default/regional_nat/variables.tf b/tests/fixtures/default/regional_nat/variables.tf index 78a3c04..c4f0540 100644 --- a/tests/fixtures/default/regional_nat/variables.tf +++ b/tests/fixtures/default/regional_nat/variables.tf @@ -1,7 +1,7 @@ -# Terraform Input Variables -# https://www.terraform.io/language/values/variables +variable "environment" { + type = string +} variable "project" { - type = string - default = "test-default-tf75-sb" + type = string } diff --git a/tests/fixtures/default/variables.tf b/tests/fixtures/default/variables.tf index 5d7b3ff..c4f0540 100644 --- a/tests/fixtures/default/variables.tf +++ b/tests/fixtures/default/variables.tf @@ -1,3 +1,7 @@ -variable "project" { - description = "The ID of the project in which the resource belongs" -} +variable "environment" { + type = string +} + +variable "project" { + type = string +}