Add an API gateway.

This commit is contained in:
Tom Alexander 2024-10-15 21:37:12 -04:00
parent f0160a8abd
commit f9d3c551f0
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
3 changed files with 57 additions and 1 deletions

View File

@ -14,4 +14,5 @@ resource "google_artifact_registry_repository" "docker_repo" {
}
}
}
depends_on = [google_project_service.service["artifactregistry"], ]
}

55
terraform/gateway.tf Normal file
View File

@ -0,0 +1,55 @@
resource "google_api_gateway_api" "api" {
provider = google-beta
project = google_project.project.project_id
api_id = "the-gateway"
depends_on = [google_project_service.service["apigateway"], ]
}
resource "google_api_gateway_api_config" "api_config" {
provider = google-beta
project = google_project.project.project_id
api = google_api_gateway_api.api.api_id
api_config_id = "api-config"
openapi_documents {
document {
path = "spec.yaml"
contents = base64encode(<<-EOF
swagger: "2.0"
info:
title: the-gateway foo
description: "Run auth through Google API Gateway."
version: "1.0.0"
schemes:
- "https"
produces:
- application/json
x-google-backend:
address: ${google_cloud_run_v2_service.api_server.uri}
paths:
"/":
get:
description: "Hello World."
operationId: "helloWorld"
responses:
200:
description: "Success."
schema:
type: string
EOF
)
}
}
}
resource "google_api_gateway_gateway" "gateway" {
provider = google-beta
project = google_project.project.project_id
api_config = google_api_gateway_api_config.api_config.id
gateway_id = "gateway-to-the-api"
}
output "gateway_address" {
value = google_api_gateway_gateway.gateway.default_hostname
}

View File

@ -74,7 +74,7 @@ resource "google_project" "project" {
resource "google_project_service" "service" {
project = google_project.project.project_id
for_each = toset(["run"])
for_each = toset(["run", "artifactregistry", "apigateway"])
service = "${each.key}.googleapis.com"
disable_dependent_services = true
}