2024-10-15 22:19:32 +00:00
|
|
|
terraform {
|
|
|
|
backend "gcs" {
|
|
|
|
bucket = "tf-state-4b00"
|
|
|
|
prefix = "terraform/api_gateway_test"
|
|
|
|
}
|
|
|
|
|
|
|
|
required_providers {
|
|
|
|
google = {
|
|
|
|
source = "hashicorp/google"
|
2024-10-16 00:45:34 +00:00
|
|
|
version = "6.7.0"
|
2024-10-15 22:19:32 +00:00
|
|
|
}
|
|
|
|
google-beta = {
|
|
|
|
source = "hashicorp/google-beta"
|
2024-10-16 00:45:34 +00:00
|
|
|
version = "6.7.0"
|
2024-10-15 22:19:32 +00:00
|
|
|
}
|
|
|
|
random = {
|
|
|
|
source = "hashicorp/random"
|
|
|
|
version = "3.6.2"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
variable "provider_project" {
|
|
|
|
description = "Project ID."
|
|
|
|
type = string
|
|
|
|
default = "terraform-management-427323"
|
|
|
|
}
|
|
|
|
|
|
|
|
variable "region" {
|
|
|
|
description = "Region."
|
|
|
|
type = string
|
|
|
|
default = "us-central1"
|
|
|
|
}
|
|
|
|
|
|
|
|
variable "zone" {
|
|
|
|
description = "Zone."
|
|
|
|
type = string
|
|
|
|
default = "us-central1-c"
|
|
|
|
}
|
|
|
|
|
|
|
|
# manual step: enable cloudbilling.googleapis.com in the terraform provider project
|
|
|
|
# https://console.developers.google.com/apis/api/cloudbilling.googleapis.com/overview?project=terraform-management-427323
|
|
|
|
provider "google" {
|
|
|
|
project = var.provider_project
|
|
|
|
region = var.region
|
|
|
|
zone = var.zone
|
|
|
|
billing_project = var.provider_project
|
|
|
|
user_project_override = true
|
|
|
|
}
|
|
|
|
|
|
|
|
provider "google-beta" {
|
|
|
|
project = var.provider_project
|
|
|
|
region = var.region
|
|
|
|
zone = var.zone
|
|
|
|
billing_project = var.provider_project
|
|
|
|
user_project_override = true
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "random_id" "project" {
|
|
|
|
byte_length = 4
|
|
|
|
}
|
|
|
|
|
|
|
|
data "google_billing_account" "acct" {
|
|
|
|
display_name = "My Billing Account"
|
|
|
|
open = true
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "google_project" "project" {
|
|
|
|
name = "Api Gateway Test"
|
|
|
|
project_id = "api-gateway-test-${random_id.project.hex}"
|
|
|
|
billing_account = data.google_billing_account.acct.id
|
2024-10-16 00:45:34 +00:00
|
|
|
deletion_policy = "DELETE"
|
2024-10-15 22:19:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "google_project_service" "service" {
|
|
|
|
project = google_project.project.project_id
|
2024-10-16 03:03:52 +00:00
|
|
|
for_each = toset(["run", "artifactregistry", "apigateway", "secretmanager"])
|
2024-10-15 22:19:32 +00:00
|
|
|
service = "${each.key}.googleapis.com"
|
|
|
|
disable_dependent_services = true
|
|
|
|
}
|