Skip to content

Commit bf1cf66

Browse files
authored
feat: Add support for session affinity on HTTP(S) LB (#89)
BREAKING CHANGE: `session_affinity` and `affinity_cookie_ttl_sec` must now be set for backends. Use `null` to get the default value.
1 parent f5129ef commit bf1cf66

File tree

15 files changed

+42
-1
lines changed

15 files changed

+42
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ module "gce-lb-http" {
3434
timeout_sec = 10
3535
connection_draining_timeout_sec = null
3636
enable_cdn = false
37+
session_affinity = null
38+
affinity_cookie_ttl_sec = null
3739
3840
health_check = {
3941
check_interval_sec = null

autogen/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ module "gce-lb-http" {
3939
timeout_sec = 10
4040
connection_draining_timeout_sec = null
4141
enable_cdn = false
42+
session_affinity = null
43+
affinity_cookie_ttl_sec = null
4244
4345
health_check = {
4446
check_interval_sec = null

autogen/main.tf.tmpl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ resource "google_compute_backend_service" "default" {
100100
enable_cdn = lookup(each.value, "enable_cdn", false)
101101
security_policy = var.security_policy
102102
health_checks = [google_compute_health_check.default[each.key].self_link]
103+
session_affinity = lookup(each.value, "session_affinity", null)
104+
affinity_cookie_ttl_sec = lookup(each.value, "affinity_cookie_ttl_sec", null)
103105

104106
dynamic "backend" {
105107
for_each = toset(each.value["groups"])

autogen/variables.tf.tmpl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ variable "backends" {
7676
timeout_sec = number
7777
connection_draining_timeout_sec = number
7878
enable_cdn = bool
79+
session_affinity = string
80+
affinity_cookie_ttl_sec = number
7981
health_check = object({
8082
check_interval_sec = number
8183
timeout_sec = number

examples/https-gke/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ module "gce-lb-https" {
5555
timeout_sec = 10
5656
connection_draining_timeout_sec = null
5757
enable_cdn = false
58+
session_affinity = null
59+
affinity_cookie_ttl_sec = null
5860

5961
health_check = {
6062
check_interval_sec = null

examples/mig-nat-http-lb/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ module "gce-lb-http" {
104104
timeout_sec = 10
105105
connection_draining_timeout_sec = null
106106
enable_cdn = false
107+
session_affinity = null
108+
affinity_cookie_ttl_sec = null
107109

108110
health_check = {
109111
check_interval_sec = null

examples/multi-backend-multi-mig-bucket-https-lb/main.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ module "gce-lb-https" {
144144
timeout_sec = 10
145145
connection_draining_timeout_sec = null
146146
enable_cdn = false
147+
session_affinity = null
148+
affinity_cookie_ttl_sec = null
147149
health_check = local.health_check
148150
log_config = {
149151
enable = true
@@ -200,6 +202,8 @@ module "gce-lb-https" {
200202
timeout_sec = 10
201203
connection_draining_timeout_sec = null
202204
enable_cdn = false
205+
session_affinity = null
206+
affinity_cookie_ttl_sec = null
203207
health_check = local.health_check
204208
log_config = {
205209
enable = true
@@ -230,6 +234,8 @@ module "gce-lb-https" {
230234
timeout_sec = 10
231235
connection_draining_timeout_sec = null
232236
enable_cdn = false
237+
session_affinity = null
238+
affinity_cookie_ttl_sec = null
233239
health_check = local.health_check
234240
log_config = {
235241
enable = true
@@ -260,6 +266,8 @@ module "gce-lb-https" {
260266
timeout_sec = 10
261267
connection_draining_timeout_sec = null
262268
enable_cdn = false
269+
session_affinity = null
270+
affinity_cookie_ttl_sec = null
263271
health_check = local.health_check
264272
log_config = {
265273
enable = true

examples/multi-mig-http-lb/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ module "gce-lb-http" {
8989
timeout_sec = 10
9090
connection_draining_timeout_sec = null
9191
enable_cdn = false
92-
92+
session_affinity = null
93+
affinity_cookie_ttl_sec = null
9394

9495
health_check = {
9596
check_interval_sec = null

examples/multiple-certs/main.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ module "gce-lb-https" {
144144
timeout_sec = 10
145145
connection_draining_timeout_sec = null
146146
enable_cdn = false
147+
session_affinity = null
148+
affinity_cookie_ttl_sec = null
147149
health_check = local.health_check
148150
log_config = {
149151
enable = true
@@ -200,6 +202,8 @@ module "gce-lb-https" {
200202
timeout_sec = 10
201203
connection_draining_timeout_sec = null
202204
enable_cdn = false
205+
session_affinity = null
206+
affinity_cookie_ttl_sec = null
203207
health_check = local.health_check
204208
log_config = {
205209
enable = true
@@ -230,6 +234,8 @@ module "gce-lb-https" {
230234
timeout_sec = 10
231235
connection_draining_timeout_sec = null
232236
enable_cdn = false
237+
session_affinity = null
238+
affinity_cookie_ttl_sec = null
233239
health_check = local.health_check
234240
log_config = {
235241
enable = true
@@ -260,6 +266,8 @@ module "gce-lb-https" {
260266
timeout_sec = 10
261267
connection_draining_timeout_sec = null
262268
enable_cdn = false
269+
session_affinity = null
270+
affinity_cookie_ttl_sec = null
263271
health_check = local.health_check
264272
log_config = {
265273
enable = true

examples/shared-vpc/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ module "gce-lb-http" {
4141
timeout_sec = 10
4242
connection_draining_timeout_sec = null
4343
enable_cdn = false
44+
session_affinity = null
45+
affinity_cookie_ttl_sec = null
4446

4547
health_check = {
4648
check_interval_sec = null

0 commit comments

Comments
 (0)