# ------------------------------------------------------------------------------ # SEPARATE TERRAFORM FILE TO COMPUTE OUTPUT VALUES AND KEEP THE MAIN MODULE CLEAN # ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------ # PREPARE LOCALS FOR THE OUTPUTS # ------------------------------------------------------------------------------ locals { # Replica proxy connection info failover_proxy_connection = join("", data.template_file.failover_proxy_connection.*.rendered) # Replica certificate info failover_certificate = join("", data.template_file.failover_certificate.*.rendered) failover_certificate_common_name = join("", data.template_file.failover_certificate_common_name.*.rendered) failover_certificate_create_time = join("", data.template_file.failover_certificate_create_time.*.rendered) failover_certificate_expiration_time = join("", data.template_file.failover_certificate_expiration_time.*.rendered) failover_certificate_sha1_fingerprint = join("", data.template_file.failover_certificate_sha1_fingerprint.*.rendered) } # ------------------------------------------------------------------------------ # FAILOVER REPLICA PROXY CONNECTION TEMPLATE # ------------------------------------------------------------------------------ data "template_file" "failover_proxy_connection" { count = local.actual_failover_replica_count template = "${var.project}:${var.region}:${google_sql_database_instance.failover_replica.0.name}" } # ------------------------------------------------------------------------------ # FAILOVER REPLICA CERTIFICATE TEMPLATES # # We have to produce the certificate outputs via template_file. Using splat syntax would yield: # Resource 'google_sql_database_instance.failover_replica' does not have attribute 'server_ca_cert.0.cert' # for variable 'google_sql_database_instance.failover_replica.*.server_ca_cert.0.cert' # ------------------------------------------------------------------------------ data "template_file" "failover_certificate" { count = local.actual_failover_replica_count template = google_sql_database_instance.failover_replica.0.server_ca_cert.0.cert } data "template_file" "failover_certificate_common_name" { count = local.actual_failover_replica_count template = google_sql_database_instance.failover_replica.0.server_ca_cert.0.common_name } data "template_file" "failover_certificate_create_time" { count = local.actual_failover_replica_count template = google_sql_database_instance.failover_replica.0.server_ca_cert.0.create_time } data "template_file" "failover_certificate_expiration_time" { count = local.actual_failover_replica_count template = google_sql_database_instance.failover_replica.0.server_ca_cert.0.expiration_time } data "template_file" "failover_certificate_sha1_fingerprint" { count = local.actual_failover_replica_count template = google_sql_database_instance.failover_replica.0.server_ca_cert.0.sha1_fingerprint } # ------------------------------------------------------------------------------ # READ REPLICA PROXY CONNECTION TEMPLATE # ------------------------------------------------------------------------------ data "template_file" "read_replica_proxy_connection" { count = var.num_read_replicas template = "${var.project}:${var.region}:${google_sql_database_instance.read_replica.*.name[count.index]}" }