terraform { # Terraform v1.15 is installed; the optional() object defaults used here need >= 1.3. required_version = ">= 1.6" # Hosts under var.hosts already exist and are driven over SSH by the null # provider's provisioners (local for rendering). google is scaffold-only: with # var.gcp_hosts left at its default {}, no google_* resource is ever planned and # the provider is never actually invoked -- `terraform plan`/`validate` work with # no GCP credentials configured at all. Populate var.gcp_hosts (and the usual # GOOGLE_APPLICATION_CREDENTIALS / gcloud auth) to actually create a GCP host. required_providers { null = { source = "hashicorp/null" version = "~> 3.2" } local = { source = "hashicorp/local" version = "~> 2.5" } google = { source = "hashicorp/google" version = "~> 6.0" } time = { source = "hashicorp/time" version = "~> 0.12" } } }