From 9ee245bfd10ed6e857f88ac7d90edb8d92408d8a Mon Sep 17 00:00:00 2001 From: amrkk123 Date: Tue, 11 Feb 2025 13:54:10 +0000 Subject: [PATCH 1/6] Adding apphub in cloudsql and postgres sql --- modules/mysql/README.md | 1 + modules/mysql/metadata.yaml | 10 ++++++++++ modules/mysql/outputs.tf | 9 +++++++++ modules/postgresql/README.md | 1 + modules/postgresql/metadata.yaml | 12 +++++++++++- modules/postgresql/outputs.tf | 9 +++++++++ 6 files changed, 41 insertions(+), 1 deletion(-) diff --git a/modules/mysql/README.md b/modules/mysql/README.md index 87c6aeaa..c7803986 100644 --- a/modules/mysql/README.md +++ b/modules/mysql/README.md @@ -111,6 +111,7 @@ module "mysql-db" { | Name | Description | |------|-------------| | additional\_users | List of maps of additional users and passwords | +| apphub\_service\_uri | Service URI in CAIS style to be used by Apphub. | | env\_vars | Exported environment variables | | generated\_user\_password | The auto generated default user password if not input password was provided | | iam\_users | The list of the IAM users with access to the CloudSQL instance | diff --git a/modules/mysql/metadata.yaml b/modules/mysql/metadata.yaml index 53e147b6..c9b8aa7c 100644 --- a/modules/mysql/metadata.yaml +++ b/modules/mysql/metadata.yaml @@ -81,6 +81,9 @@ spec: description: The database version to use varType: string required: true + - name: maintenance_version + description: The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions attribute to see what maintenance_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version value that is older than the current one on the instance will be ignored + varType: string - name: availability_type description: The availability type for the master instance. Can be either `REGIONAL` or `null`. varType: string @@ -412,6 +415,13 @@ spec: type: - tuple - [] + - name: apphub_service_uri + description: Service URI in CAIS style to be used by Apphub. + type: + - object + - location: string + service_id: string + service_uri: string - name: env_vars description: Exported environment variables type: diff --git a/modules/mysql/outputs.tf b/modules/mysql/outputs.tf index 85f19065..e0e5f2f6 100644 --- a/modules/mysql/outputs.tf +++ b/modules/mysql/outputs.tf @@ -154,3 +154,12 @@ output "env_vars" { "CLOUD_SQL_DATABASE_NAME" : local.database_name } } + +output "apphub_service_uri" { + value = { + service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" + service_id = substr("${var.service_name}-${md5("${var.location}-${var.project_id}")}", 0, 63) + location = var.location + } + description = "Service URI in CAIS style to be used by Apphub." +} diff --git a/modules/postgresql/README.md b/modules/postgresql/README.md index b2c1f38a..7783d2a0 100644 --- a/modules/postgresql/README.md +++ b/modules/postgresql/README.md @@ -181,6 +181,7 @@ module "pg" { | Name | Description | |------|-------------| | additional\_users | List of maps of additional users and passwords | +| apphub\_service\_uri | Service URI in CAIS style to be used by Apphub. | | dns\_name | DNS name of the instance endpoint | | env\_vars | Exported environment variables | | generated\_user\_password | The auto generated default user password if not input password was provided | diff --git a/modules/postgresql/metadata.yaml b/modules/postgresql/metadata.yaml index 370722f3..ab3e27cc 100644 --- a/modules/postgresql/metadata.yaml +++ b/modules/postgresql/metadata.yaml @@ -78,9 +78,12 @@ spec: description: The edition of the Cloud SQL instance, can be ENTERPRISE or ENTERPRISE_PLUS. varType: string - name: database_version - description: The database version to use + description: The database version to use. Can be 9_6, 14, 15, 16, 17. varType: string required: true + - name: maintenance_version + description: The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions attribute to see what maintenance_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version value that is older than the current one on the instance will be ignored + varType: string - name: availability_type description: The availability type for the Cloud SQL instance.This is only used to set up high availability for the PostgreSQL instance. Can be either `ZONAL` or `REGIONAL`. varType: string @@ -403,6 +406,13 @@ spec: type: - tuple - [] + - name: apphub_service_uri + description: Service URI in CAIS style to be used by Apphub. + type: + - object + - location: string + service_id: string + service_uri: string - name: dns_name description: DNS name of the instance endpoint type: string diff --git a/modules/postgresql/outputs.tf b/modules/postgresql/outputs.tf index 4874c5af..d035730b 100644 --- a/modules/postgresql/outputs.tf +++ b/modules/postgresql/outputs.tf @@ -152,3 +152,12 @@ output "env_vars" { "CLOUD_SQL_DATABASE_NAME" : local.database_name } } + +output "apphub_service_uri" { + value = { + service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" + service_id = substr("${var.service_name}-${md5("${var.location}-${var.project_id}")}", 0, 63) + location = var.location + } + description = "Service URI in CAIS style to be used by Apphub." +} From e402719527f0154bdd192b00cf87743a48b1a98d Mon Sep 17 00:00:00 2001 From: amrkk123 Date: Wed, 12 Feb 2025 05:57:32 +0000 Subject: [PATCH 2/6] Rechecking all the fields --- modules/mysql/metadata.yaml | 7 ++++--- modules/mysql/outputs.tf | 3 +-- modules/postgresql/outputs.tf | 3 +-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/mysql/metadata.yaml b/modules/mysql/metadata.yaml index c9b8aa7c..a4ae2a2f 100644 --- a/modules/mysql/metadata.yaml +++ b/modules/mysql/metadata.yaml @@ -311,9 +311,10 @@ spec: varType: |- object({ enable_password_policy = bool - min_length = number - complexity = string - disallow_username_substring = bool + min_length = optional(number) + complexity = optional(string) + disallow_username_substring = optional(bool) + reuse_interval = optional(number) }) - name: read_replicas description: List of read replicas to create. Encryption key is required for replica in different region. For replica in same region as master set encryption_key_name = null diff --git a/modules/mysql/outputs.tf b/modules/mysql/outputs.tf index e0e5f2f6..3f10fa8e 100644 --- a/modules/mysql/outputs.tf +++ b/modules/mysql/outputs.tf @@ -158,8 +158,7 @@ output "env_vars" { output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" - service_id = substr("${var.service_name}-${md5("${var.location}-${var.project_id}")}", 0, 63) - location = var.location + service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) } description = "Service URI in CAIS style to be used by Apphub." } diff --git a/modules/postgresql/outputs.tf b/modules/postgresql/outputs.tf index d035730b..020570b1 100644 --- a/modules/postgresql/outputs.tf +++ b/modules/postgresql/outputs.tf @@ -156,8 +156,7 @@ output "env_vars" { output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" - service_id = substr("${var.service_name}-${md5("${var.location}-${var.project_id}")}", 0, 63) - location = var.location + service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) } description = "Service URI in CAIS style to be used by Apphub." } From 643c6b1d2a5442ef03a16bf87acb54e048655217 Mon Sep 17 00:00:00 2001 From: amrkk123 Date: Wed, 12 Feb 2025 06:00:56 +0000 Subject: [PATCH 3/6] Bugfixing metadata --- modules/mysql/metadata.yaml | 3 +-- modules/postgresql/metadata.yaml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/mysql/metadata.yaml b/modules/mysql/metadata.yaml index a4ae2a2f..460dde60 100644 --- a/modules/mysql/metadata.yaml +++ b/modules/mysql/metadata.yaml @@ -420,8 +420,7 @@ spec: description: Service URI in CAIS style to be used by Apphub. type: - object - - location: string - service_id: string + - service_id: string service_uri: string - name: env_vars description: Exported environment variables diff --git a/modules/postgresql/metadata.yaml b/modules/postgresql/metadata.yaml index ab3e27cc..9b18d0b2 100644 --- a/modules/postgresql/metadata.yaml +++ b/modules/postgresql/metadata.yaml @@ -410,8 +410,7 @@ spec: description: Service URI in CAIS style to be used by Apphub. type: - object - - location: string - service_id: string + - service_id: string service_uri: string - name: dns_name description: DNS name of the instance endpoint From 8c7d9ce3592d5f8d55fc9de73101e5202e90fd65 Mon Sep 17 00:00:00 2001 From: amrkk123 Date: Wed, 12 Feb 2025 18:07:11 +0000 Subject: [PATCH 4/6] Adding location in apphub service uri --- modules/mysql/metadata.yaml | 3 ++- modules/mysql/outputs.tf | 1 + modules/postgresql/metadata.yaml | 3 ++- modules/postgresql/outputs.tf | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/mysql/metadata.yaml b/modules/mysql/metadata.yaml index 460dde60..a4ae2a2f 100644 --- a/modules/mysql/metadata.yaml +++ b/modules/mysql/metadata.yaml @@ -420,7 +420,8 @@ spec: description: Service URI in CAIS style to be used by Apphub. type: - object - - service_id: string + - location: string + service_id: string service_uri: string - name: env_vars description: Exported environment variables diff --git a/modules/mysql/outputs.tf b/modules/mysql/outputs.tf index 3f10fa8e..bb69a30a 100644 --- a/modules/mysql/outputs.tf +++ b/modules/mysql/outputs.tf @@ -159,6 +159,7 @@ output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) + location = var.location } description = "Service URI in CAIS style to be used by Apphub." } diff --git a/modules/postgresql/metadata.yaml b/modules/postgresql/metadata.yaml index 9b18d0b2..ab3e27cc 100644 --- a/modules/postgresql/metadata.yaml +++ b/modules/postgresql/metadata.yaml @@ -410,7 +410,8 @@ spec: description: Service URI in CAIS style to be used by Apphub. type: - object - - service_id: string + - location: string + service_id: string service_uri: string - name: dns_name description: DNS name of the instance endpoint diff --git a/modules/postgresql/outputs.tf b/modules/postgresql/outputs.tf index 020570b1..2da766c7 100644 --- a/modules/postgresql/outputs.tf +++ b/modules/postgresql/outputs.tf @@ -157,6 +157,7 @@ output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) + location = var.location } description = "Service URI in CAIS style to be used by Apphub." } From 868b980d50a798e686d54f7684ebb193be4fb372 Mon Sep 17 00:00:00 2001 From: amrkk123 Date: Thu, 13 Feb 2025 04:46:49 +0000 Subject: [PATCH 5/6] Changing location value for postgres and mysql --- modules/mysql/outputs.tf | 2 +- modules/postgresql/outputs.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mysql/outputs.tf b/modules/mysql/outputs.tf index bb69a30a..548a8813 100644 --- a/modules/mysql/outputs.tf +++ b/modules/mysql/outputs.tf @@ -159,7 +159,7 @@ output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) - location = var.location + location = var.region } description = "Service URI in CAIS style to be used by Apphub." } diff --git a/modules/postgresql/outputs.tf b/modules/postgresql/outputs.tf index 2da766c7..24557140 100644 --- a/modules/postgresql/outputs.tf +++ b/modules/postgresql/outputs.tf @@ -157,7 +157,7 @@ output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) - location = var.location + location = var.region } description = "Service URI in CAIS style to be used by Apphub." } From a77ac1bc580171a350a4e1a9e3f12df0bb06fbb0 Mon Sep 17 00:00:00 2001 From: amrkk123 Date: Thu, 13 Feb 2025 07:06:53 +0000 Subject: [PATCH 6/6] Adding region in service_id --- modules/mysql/outputs.tf | 2 +- modules/postgresql/outputs.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mysql/outputs.tf b/modules/mysql/outputs.tf index 548a8813..21e01dbd 100644 --- a/modules/mysql/outputs.tf +++ b/modules/mysql/outputs.tf @@ -158,7 +158,7 @@ output "env_vars" { output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" - service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) + service_id = substr("${var.name}-${md5("${var.region}-${var.project_id}")}", 0, 63) location = var.region } description = "Service URI in CAIS style to be used by Apphub." diff --git a/modules/postgresql/outputs.tf b/modules/postgresql/outputs.tf index 24557140..19f54f72 100644 --- a/modules/postgresql/outputs.tf +++ b/modules/postgresql/outputs.tf @@ -156,7 +156,7 @@ output "env_vars" { output "apphub_service_uri" { value = { service_uri = "//cloudsql.googleapis.com/projects${element(split("/projects", google_sql_database_instance.default.self_link), 1)}" - service_id = substr(format("%s-%s", var.name, md5(var.project_id)), 0, 63) + service_id = substr("${var.name}-${md5("${var.region}-${var.project_id}")}", 0, 63) location = var.region } description = "Service URI in CAIS style to be used by Apphub."