From 4b49407e7f57f12af3ad407a524dc5473374dc0a Mon Sep 17 00:00:00 2001 From: BryanFauble <17128019+BryanFauble@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:21:51 -0700 Subject: [PATCH] Create connection pooler --- .../stacks/dpe-k8s-deployments/main.tf | 7 +++-- modules/postgres-cloud-native/main.tf | 28 +++++++++++++++---- .../resources/pooler.yaml | 15 ++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 modules/postgres-cloud-native/resources/pooler.yaml diff --git a/deployments/stacks/dpe-k8s-deployments/main.tf b/deployments/stacks/dpe-k8s-deployments/main.tf index 68e52ce0..4a52a6b8 100644 --- a/deployments/stacks/dpe-k8s-deployments/main.tf +++ b/deployments/stacks/dpe-k8s-deployments/main.tf @@ -62,9 +62,10 @@ module "postgres-cloud-native-operator" { } module "postgres-cloud-native-database" { - depends_on = [module.postgres-cloud-native-operator, module.airflow, module.argo-cd] - source = "spacelift.io/sagebionetworks/postgres-cloud-native-database/aws" - version = "0.3.1" + depends_on = [module.postgres-cloud-native-operator, module.airflow, module.argo-cd] + # source = "spacelift.io/sagebionetworks/postgres-cloud-native-database/aws" + # version = "0.3.1" + source = "../../../modules/postgres-cloud-native" auto_deploy = true auto_prune = true git_revision = var.git_revision diff --git a/modules/postgres-cloud-native/main.tf b/modules/postgres-cloud-native/main.tf index 98d00bd2..fc35d1ef 100644 --- a/modules/postgres-cloud-native/main.tf +++ b/modules/postgres-cloud-native/main.tf @@ -28,6 +28,24 @@ spec: - repoURL: 'https://github.com/Sage-Bionetworks-Workflows/eks-stack.git' targetRevision: ${var.git_revision} ref: values + - repoURL: 'https://github.com/Sage-Bionetworks-Workflows/eks-stack.git' + targetRevision: ibcdpe-1004-add-pooler + path: modules/postgres-cloud-native/resources + kustomize: + patches: + - target: + kind: Pooler + name: pg-user-secret + patch: |- + - op: replace + path: /spec/cluster/name + value: ${var.argo_deployment_name}-cluster + - op: replace + path: /spec/instances + value: 2 + - op: replace + path: /metadata/name + value: ${var.argo_deployment_name}-pooler-rw destination: server: 'https://kubernetes.default.svc' namespace: ${var.namespace} @@ -54,14 +72,14 @@ resource "kubernetes_secret" "connection-secret" { data = { "dbname" = "application-database" - "host" = "${var.argo_deployment_name}-cluster-rw.${var.namespace}" - "jdbc-uri" = "jdbc:postgresql://${var.argo_deployment_name}-cluster-rw.${var.namespace}:5432/application-database?password=${random_password.pg-password.result}&user=application-database" + "host" = "${var.argo_deployment_name}-pooler-rw.${var.namespace}" + "jdbc-uri" = "jdbc:postgresql://${var.argo_deployment_name}-pooler-rw.${var.namespace}:5432/application-database?password=${random_password.pg-password.result}&user=application-database" "password" = random_password.pg-password.result - "pgpass" = "${var.argo_deployment_name}-cluster-rw:5432:application-database:application-database:${random_password.pg-password.result}" + "pgpass" = "${var.argo_deployment_name}-pooler-rw:5432:application-database:application-database:${random_password.pg-password.result}" "port" = "5432" - "uri" = "postgresql://application-database:${random_password.pg-password.result}@${var.argo_deployment_name}-cluster-rw.${var.namespace}:5432/application-database" + "uri" = "postgresql://application-database:${random_password.pg-password.result}@${var.argo_deployment_name}-pooler-rw.${var.namespace}:5432/application-database" "user" = "application-database" "username" = "application-database" - "connection" = "postgresql://application-database:${random_password.pg-password.result}@${var.argo_deployment_name}-cluster-rw.${var.namespace}:5432/application-database" + "connection" = "postgresql://application-database:${random_password.pg-password.result}@${var.argo_deployment_name}-pooler-rw.${var.namespace}:5432/application-database" } } diff --git a/modules/postgres-cloud-native/resources/pooler.yaml b/modules/postgres-cloud-native/resources/pooler.yaml new file mode 100644 index 00000000..d81c470a --- /dev/null +++ b/modules/postgres-cloud-native/resources/pooler.yaml @@ -0,0 +1,15 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: Pooler +metadata: + name: replaced-by-kustomize +spec: + cluster: + name: replaced-by-kustomize + + instances: 2 + type: rw + pgbouncer: + poolMode: session + parameters: + max_client_conn: "1000" + default_pool_size: "20" \ No newline at end of file