Skip to content

Commit 242d526

Browse files
authored
MRG: Merge pull request #2 from octue/add-database-query-insights
Add database query insights
2 parents f40a6f9 + 3b0491b commit 242d526

File tree

5 files changed

+51
-37
lines changed

5 files changed

+51
-37
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ locals {
7878
7979
8080
module "octue_django_api" {
81-
source = "git::github.com/octue/terraform-octue-django-api.git?ref=0.1.0"
81+
source = "git::github.com/octue/terraform-octue-django-api.git?ref=0.2.0"
8282
project = var.google_cloud_project_id
8383
region = var.google_cloud_region
8484
resource_affix = var.resource_affix
@@ -158,9 +158,10 @@ terraform destroy
158158
| `google_cloud_region` | `string` | Yes | N/A |
159159
| `resource_affix` | `string` | Yes | N/A |
160160
| `environment` | `string` | No | `"main"` |
161-
| `maintainer_service_account_names` | `set(string)` | No | `["default"]` |
162161
| `secret_names` | `set(string)` | No | `set(["django-secret-key", "database-proxy-url", "database-url", "stripe-secret-key"])` |
163-
| `tasks_queue_name_suffix` | `string` | No | `""` |
162+
| `tasks_queue_name_suffix` | `string` | No | `""` |
163+
| `database_availability_type` | `string` | No | `"ZONAL"` |
164+
| `maintainer_service_account_names` | `set(string)` | No | `["default"]` |
164165
| `deletion_protection` | `bool` | No | `true` |
165166

166167
See [`variables.tf`](/variables.tf) for descriptions.

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.0
1+
0.2.0

databases.tf renamed to database.tf

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,17 @@ resource "google_sql_database_instance" "postgres_instance" {
1414
value = "400"
1515
}
1616

17+
insights_config {
18+
query_insights_enabled = true
19+
}
20+
21+
availability_type = var.database_availability_type
22+
1723
backup_configuration {
18-
enabled = true
24+
enabled = true
1925
point_in_time_recovery_enabled = true
2026
}
2127
}
22-
# If we need to execute SQL...
23-
# provisioner "local-exec" {
24-
# command = "PGPASSWORD=<password> psql -f schema.sql -p <port> -U <username> <databasename>"
25-
# }
2628

2729
timeouts {}
2830
}

iam_roles.tf

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ locals {
88

99

1010
resource "google_project_iam_member" "iam__service_account_user" {
11-
project = var.google_cloud_project_id
12-
role = "roles/iam.serviceAccountUser"
13-
member = local.server_service_account_email
11+
project = var.google_cloud_project_id
12+
role = "roles/iam.serviceAccountUser"
13+
member = local.server_service_account_email
1414
}
1515

1616

1717
resource "google_project_iam_member" "run__developer" {
18-
project = var.google_cloud_project_id
19-
role = "roles/run.developer"
20-
member = local.server_service_account_email
18+
project = var.google_cloud_project_id
19+
role = "roles/run.developer"
20+
member = local.server_service_account_email
2121
}
2222

2323

2424
resource "google_project_iam_member" "storage__object_admin" {
25-
project = var.google_cloud_project_id
26-
role = "roles/storage.objectAdmin"
27-
member = local.server_service_account_email
25+
project = var.google_cloud_project_id
26+
role = "roles/storage.objectAdmin"
27+
member = local.server_service_account_email
2828
}
2929

3030

@@ -36,9 +36,9 @@ resource "google_project_iam_member" "error_reporting__writer" {
3636

3737

3838
resource "google_project_iam_member" "cloudsql__client" {
39-
project = var.google_cloud_project_id
40-
role = "roles/cloudsql.client"
41-
member = local.server_service_account_email
39+
project = var.google_cloud_project_id
40+
role = "roles/cloudsql.client"
41+
member = local.server_service_account_email
4242
}
4343

4444

@@ -48,9 +48,9 @@ resource "google_project_iam_member" "cloudsql__client" {
4848
# - https://cloud.google.com/sql/docs/mysql/iam-permissions
4949
resource "google_project_iam_member" "cloudsql_maintainers" {
5050
for_each = local.maintainer_service_account_emails
51-
project = var.google_cloud_project_id
52-
role = "roles/cloudsql.editor"
53-
member = each.value
51+
project = var.google_cloud_project_id
52+
role = "roles/cloudsql.editor"
53+
member = each.value
5454
}
5555

5656

@@ -66,15 +66,15 @@ resource "google_project_iam_member" "cloudsql_maintainers" {
6666

6767
# Allow django-gcp.tasks to create periodic tasks in google cloud scheduler
6868
resource "google_project_iam_member" "cloudscheduler__admin" {
69-
project = var.google_cloud_project_id
70-
role = "roles/cloudscheduler.admin"
71-
member = local.server_service_account_email
69+
project = var.google_cloud_project_id
70+
role = "roles/cloudscheduler.admin"
71+
member = local.server_service_account_email
7272
}
7373

7474

7575
# Allow the server to pull secrets.
7676
resource "google_project_iam_member" "secretmanager__secret_accessor" {
77-
project = var.google_cloud_project_id
78-
role = "roles/secretmanager.secretAccessor"
79-
member = local.server_service_account_email
77+
project = var.google_cloud_project_id
78+
role = "roles/secretmanager.secretAccessor"
79+
member = local.server_service_account_email
8080
}

variables.tf

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,6 @@ variable "environment" {
2323
}
2424

2525

26-
variable "maintainer_service_account_names" {
27-
type = set(string)
28-
default = ["default"]
29-
description = "The names of each maintainer IAM service account that should be created. They'll automatically be prefixed with 'maintainer-'."
30-
}
31-
32-
3326
variable "secret_names" {
3427
description = "A list of secrets to be created and made accessible to the cloud run instance."
3528
type = set(string)
@@ -49,6 +42,24 @@ variable "tasks_queue_name_suffix" {
4942
}
5043

5144

45+
variable "database_availability_type" {
46+
type = string
47+
default = "ZONAL"
48+
validation {
49+
condition = length(regexall("^(ZONAL|REGIONAL)$", var.database_availability_type)) > 0
50+
error_message = "ERROR: Valid types are \"ZONAL\" and \"REGIONAL\"."
51+
}
52+
description = "Must be one of 'ZONAL' (low availability) and 'REGIONAL' (high availability)."
53+
}
54+
55+
56+
variable "maintainer_service_account_names" {
57+
type = set(string)
58+
default = ["default"]
59+
description = "The names of each maintainer IAM service account that should be created. They'll automatically be prefixed with 'maintainer-'."
60+
}
61+
62+
5263
variable "deletion_protection" {
5364
type = bool
5465
default = true

0 commit comments

Comments
 (0)