@@ -6,6 +6,10 @@ variable "instance_name" {
66 default = " dbsync-v3-pgbouncer"
77}
88
9+ variable "cloud_provider" {
10+ default = " gcp"
11+ }
12+
913variable "service_name" {
1014 default = " dbsync-v3-pgbouncer"
1115}
@@ -55,8 +59,8 @@ variable "postgres_instance_name" {
5559 default = " postgres-dbsync-v3-ar9"
5660}
5761
58- resource "kubernetes_service_v1" "dbsync_pgbouncer_elb " {
59- count = var. load_balancer ? 1 : 0
62+ resource "kubernetes_service_v1" "dbsync_pgbouncer_elb_aws " {
63+ for_each = var. load_balancer && var . cloud_provider == " aws " ? toset ([ " loadbalancer " ]) : toset ([])
6064 metadata {
6165 namespace = var. namespace
6266 name = var. service_name
@@ -82,3 +86,57 @@ resource "kubernetes_service_v1" "dbsync_pgbouncer_elb" {
8286 }
8387 }
8488}
89+
90+ resource "kubernetes_service_v1" "dbsync_pgbouncer_elb_gcp" {
91+ for_each = var. load_balancer && var. cloud_provider == " gcp" ? toset ([" loadbalancer" ]) : toset ([])
92+ metadata {
93+ namespace = var. namespace
94+ name = var. service_name
95+ annotations = {
96+ " cloud.google.com/l4-rbs" : " enabled"
97+ }
98+ }
99+
100+ spec {
101+ type = " LoadBalancer"
102+ external_traffic_policy = " Local"
103+
104+ port {
105+ protocol = " TCP"
106+ port = 5432
107+ target_port = 6432
108+ }
109+
110+ selector = {
111+ " role" = var.instance_role
112+ }
113+ }
114+ }
115+
116+ variable "pgbouncer_tolerations" {
117+ type = list (object ({
118+ effect = string
119+ key = string
120+ operator = string
121+ value = optional (string )
122+ }))
123+ default = [
124+ {
125+ effect = " NoSchedule"
126+ key = " demeter.run/compute-profile"
127+ operator = " Exists"
128+ },
129+ {
130+ effect = " NoSchedule"
131+ key = " demeter.run/compute-arch"
132+ operator = " Equal"
133+ value = " x86"
134+ },
135+ {
136+ effect = " NoSchedule"
137+ key = " demeter.run/availability-sla"
138+ operator = " Equal"
139+ value = " best-effort"
140+ }
141+ ]
142+ }
0 commit comments