google_cdn_backend_bucket/main.tf (55 lines of code) (raw):
/*
* # google_cdn_backend_bucket
*
* this module builds a GCP Load Balancer with a backend bucket
*/
resource "google_compute_backend_bucket" "default" {
name = format("%s", local.name_prefix)
bucket_name = var.bucket_name
compression_mode = var.compression_mode
enable_cdn = true
cdn_policy {
cache_mode = var.cdn_policy.cache_mode
client_ttl = var.cdn_policy.client_ttl
default_ttl = var.cdn_policy.default_ttl
max_ttl = var.cdn_policy.max_ttl
negative_caching = var.cdn_policy.negative_caching
serve_while_stale = var.cdn_policy.serve_while_stale
}
}
resource "google_compute_url_map" "default" {
name = format("%s", local.name_prefix)
default_service = google_compute_backend_bucket.default.self_link
}
resource "google_compute_url_map" "https_redirect" {
name = format("%s-https-redirect", local.name_prefix)
default_url_redirect {
https_redirect = true
strip_query = false
redirect_response_code = "MOVED_PERMANENTLY_DEFAULT"
}
}
resource "google_compute_target_http_proxy" "default" {
name = format("%s", local.name_prefix)
url_map = google_compute_url_map.https_redirect.id
}
resource "google_compute_target_https_proxy" "default" {
name = format("%s", local.name_prefix)
url_map = google_compute_url_map.default.id
ssl_certificates = var.certificates
quic_override = "DISABLE"
}
resource "google_compute_global_forwarding_rule" "http" {
for_each = var.addresses
name = format("%s-http-%s", local.name_prefix, each.key)
port_range = "80"
target = google_compute_target_http_proxy.default.id
ip_address = each.value
}
resource "google_compute_global_forwarding_rule" "https" {
for_each = var.addresses
name = format("%s-https-%s", local.name_prefix, each.key)
port_range = "443"
target = google_compute_target_https_proxy.default.id
ip_address = each.value
}