FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit b2f9a42a authored by Dr Rich Wareham's avatar Dr Rich Wareham
Browse files

Allow sql_instance_connection_name to be empty

Sometimes we don't need a SQL instance for the webapp. Allow
sql_instance_connection_name to be empty and, if so, don't add the Cloud
SQL connection roles to the service account or add the SQL instance
annotation to the webapp.

Closes #5
parent 644f2ab4
No related branches found
No related tags found
No related merge requests found
Pipeline #32658 passed
This commit is part of merge request !6. Comments created here will be created in the context of that merge request.
......@@ -8,7 +8,10 @@ resource "google_service_account" "webapp" {
}
# The webapp service account has the ability to connect to the SQL instance.
# (Only if sql_instance_connection_name is non-empty.)
resource "google_project_iam_member" "webapp_sql_client" {
count = (var.sql_instance_connection_name != "") ? 1 : 0
project = local.sql_instance_project
role = "roles/cloudsql.client"
member = "serviceAccount:${google_service_account.webapp.email}"
......@@ -28,23 +31,29 @@ resource "google_cloud_run_service" "webapp" {
template {
metadata {
annotations = {
# Maximum number of auto-scaled instances. For a container with
# N-workers, maxScale should be less than 1/N of the maximum connection
# count for the Cloud SQL instance.
"autoscaling.knative.dev/maxScale" = var.max_scale
# Cloud SQL instances to auto-magically make appear in the container as
# Unix sockets.
"run.googleapis.com/cloudsql-instances" = var.sql_instance_connection_name
# As mentioned at https://www.terraform.io/docs/configuration/resources.html#ignore_changes
# placeholders need to be created as the adding the key to the map is
# considered a change and not ignored by ignore_changes
"client.knative.dev/user-image" = "placeholder"
"run.googleapis.com/client-name" = "placeholder"
"run.googleapis.com/client-version" = "placeholder"
}
annotations = merge(
# Annotations which are always set:
{
# Maximum number of auto-scaled instances. For a container with
# N-workers, maxScale should be less than 1/N of the maximum connection
# count for the Cloud SQL instance.
"autoscaling.knative.dev/maxScale" = var.max_scale
# As mentioned at https://www.terraform.io/docs/configuration/resources.html#ignore_changes
# placeholders need to be created as the adding the key to the map is
# considered a change and not ignored by ignore_changes
"client.knative.dev/user-image" = "placeholder"
"run.googleapis.com/client-name" = "placeholder"
"run.googleapis.com/client-version" = "placeholder"
},
# Annotations which are only set if there is a Cloud SQL instance:
(var.sql_instance_connection_name != "") ? {
# Cloud SQL instances to auto-magically make appear in the container as
# Unix sockets.
"run.googleapis.com/cloudsql-instances" = var.sql_instance_connection_name
} : {},
)
# See the README for information on this.
name = random_id.webapp_revision_name.hex
......
......@@ -16,7 +16,7 @@ variable "sql_instance_project" {
variable "sql_instance_connection_name" {
description = "SQL instance connection name"
type = string
default = ""
}
variable "cloud_run_region" {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment