Skip to content

Commit c928cb3

Browse files
committed
Merge remote-tracking branch 'origin/main--merge-conflict' into next
2 parents 2f899c1 + 6a77f72 commit c928cb3

17 files changed

+588
-6
lines changed

internal/services/load_balancer/resource_test.go

Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,237 @@ func TestAccCloudflareLoadBalancer_LeastConnectionsBalanced(t *testing.T) {
487487
})
488488
}
489489

490+
func TestAccCloudflareLoadBalancer_Account(t *testing.T) {
491+
var loadBalancer cfold.LoadBalancer
492+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
493+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
494+
rnd := utils.GenerateRandomResourceName()
495+
name := "cloudflare_load_balancer." + rnd
496+
497+
resource.Test(t, resource.TestCase{
498+
PreCheck: func() { acctest.TestAccPreCheck(t) },
499+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
500+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
501+
Steps: []resource.TestStep{ {
502+
Config: testAccCheckCloudflareLoadBalancerConfigAccount(zoneID, zone, rnd),
503+
Check: resource.ComposeTestCheckFunc(
504+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
505+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
506+
),
507+
} },
508+
})
509+
}
510+
511+
func TestAccCloudflareLoadBalancer_AdaptiveRoutingFailoverFalse(t *testing.T) {
512+
var loadBalancer cfold.LoadBalancer
513+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
514+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
515+
rnd := utils.GenerateRandomResourceName()
516+
name := "cloudflare_load_balancer." + rnd
517+
518+
resource.Test(t, resource.TestCase{
519+
PreCheck: func() { acctest.TestAccPreCheck(t) },
520+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
521+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
522+
Steps: []resource.TestStep{ {
523+
Config: testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverFalse(zoneID, zone, rnd),
524+
Check: resource.ComposeTestCheckFunc(
525+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
526+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
527+
),
528+
} },
529+
})
530+
}
531+
532+
func TestAccCloudflareLoadBalancer_AdaptiveRoutingFailoverTrue(t *testing.T) {
533+
var loadBalancer cfold.LoadBalancer
534+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
535+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
536+
rnd := utils.GenerateRandomResourceName()
537+
name := "cloudflare_load_balancer." + rnd
538+
539+
resource.Test(t, resource.TestCase{
540+
PreCheck: func() { acctest.TestAccPreCheck(t) },
541+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
542+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
543+
Steps: []resource.TestStep{ {
544+
Config: testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverTrue(zoneID, zone, rnd),
545+
Check: resource.ComposeTestCheckFunc(
546+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
547+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
548+
),
549+
} },
550+
})
551+
}
552+
553+
func TestAccCloudflareLoadBalancer_CountryPools(t *testing.T) {
554+
var loadBalancer cfold.LoadBalancer
555+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
556+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
557+
rnd := utils.GenerateRandomResourceName()
558+
name := "cloudflare_load_balancer." + rnd
559+
560+
resource.Test(t, resource.TestCase{
561+
PreCheck: func() { acctest.TestAccPreCheck(t) },
562+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
563+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
564+
Steps: []resource.TestStep{ {
565+
Config: testAccCheckCloudflareLoadBalancerConfigCountryPools(zoneID, zone, rnd),
566+
Check: resource.ComposeTestCheckFunc(
567+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
568+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
569+
),
570+
} },
571+
})
572+
}
573+
574+
func TestAccCloudflareLoadBalancer_CustomLocationStrategy(t *testing.T) {
575+
var loadBalancer cfold.LoadBalancer
576+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
577+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
578+
rnd := utils.GenerateRandomResourceName()
579+
name := "cloudflare_load_balancer." + rnd
580+
581+
resource.Test(t, resource.TestCase{
582+
PreCheck: func() { acctest.TestAccPreCheck(t) },
583+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
584+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
585+
Steps: []resource.TestStep{ {
586+
Config: testAccCheckCloudflareLoadBalancerConfigCustomLocationStrategy(zoneID, zone, rnd),
587+
Check: resource.ComposeTestCheckFunc(
588+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
589+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
590+
),
591+
} },
592+
})
593+
}
594+
595+
func TestAccCloudflareLoadBalancer_CustomPort(t *testing.T) {
596+
var loadBalancer cfold.LoadBalancer
597+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
598+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
599+
rnd := utils.GenerateRandomResourceName()
600+
name := "cloudflare_load_balancer." + rnd
601+
602+
resource.Test(t, resource.TestCase{
603+
PreCheck: func() { acctest.TestAccPreCheck(t) },
604+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
605+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
606+
Steps: []resource.TestStep{ {
607+
Config: testAccCheckCloudflareLoadBalancerConfigCustomPort(zoneID, zone, rnd),
608+
Check: resource.ComposeTestCheckFunc(
609+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
610+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
611+
),
612+
} },
613+
})
614+
}
615+
616+
func TestAccCloudflareLoadBalancer_CustomSessionAffinityAttributes(t *testing.T) {
617+
var loadBalancer cfold.LoadBalancer
618+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
619+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
620+
rnd := utils.GenerateRandomResourceName()
621+
name := "cloudflare_load_balancer." + rnd
622+
623+
resource.Test(t, resource.TestCase{
624+
PreCheck: func() { acctest.TestAccPreCheck(t) },
625+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
626+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
627+
Steps: []resource.TestStep{ {
628+
Config: testAccCheckCloudflareLoadBalancerConfigCustomSessionAffinityAttributes(zoneID, zone, rnd),
629+
Check: resource.ComposeTestCheckFunc(
630+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
631+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
632+
),
633+
} },
634+
})
635+
}
636+
637+
func TestAccCloudflareLoadBalancer_CustomTTL(t *testing.T) {
638+
var loadBalancer cfold.LoadBalancer
639+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
640+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
641+
rnd := utils.GenerateRandomResourceName()
642+
name := "cloudflare_load_balancer." + rnd
643+
644+
resource.Test(t, resource.TestCase{
645+
PreCheck: func() { acctest.TestAccPreCheck(t) },
646+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
647+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
648+
Steps: []resource.TestStep{ {
649+
Config: testAccCheckCloudflareLoadBalancerConfigCustomTTL(zoneID, zone, rnd),
650+
Check: resource.ComposeTestCheckFunc(
651+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
652+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
653+
),
654+
} },
655+
})
656+
}
657+
658+
func TestAccCloudflareLoadBalancer_LocationStrategyAlwaysResolverIP(t *testing.T) {
659+
var loadBalancer cfold.LoadBalancer
660+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
661+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
662+
rnd := utils.GenerateRandomResourceName()
663+
name := "cloudflare_load_balancer." + rnd
664+
665+
resource.Test(t, resource.TestCase{
666+
PreCheck: func() { acctest.TestAccPreCheck(t) },
667+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
668+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
669+
Steps: []resource.TestStep{ {
670+
Config: testAccCheckCloudflareLoadBalancerConfigLocationStrategyAlwaysResolverIP(zoneID, zone, rnd),
671+
Check: resource.ComposeTestCheckFunc(
672+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
673+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
674+
),
675+
} },
676+
})
677+
}
678+
679+
func TestAccCloudflareLoadBalancer_LocationStrategyNeverPop(t *testing.T) {
680+
var loadBalancer cfold.LoadBalancer
681+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
682+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
683+
rnd := utils.GenerateRandomResourceName()
684+
name := "cloudflare_load_balancer." + rnd
685+
686+
resource.Test(t, resource.TestCase{
687+
PreCheck: func() { acctest.TestAccPreCheck(t) },
688+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
689+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
690+
Steps: []resource.TestStep{ {
691+
Config: testAccCheckCloudflareLoadBalancerConfigLocationStrategyNeverPop(zoneID, zone, rnd),
692+
Check: resource.ComposeTestCheckFunc(
693+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
694+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
695+
),
696+
} },
697+
})
698+
}
699+
700+
func TestAccCloudflareLoadBalancer_StandardZone(t *testing.T) {
701+
var loadBalancer cfold.LoadBalancer
702+
zone := os.Getenv("CLOUDFLARE_DOMAIN")
703+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
704+
rnd := utils.GenerateRandomResourceName()
705+
name := "cloudflare_load_balancer." + rnd
706+
707+
resource.Test(t, resource.TestCase{
708+
PreCheck: func() { acctest.TestAccPreCheck(t) },
709+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
710+
CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy,
711+
Steps: []resource.TestStep{ {
712+
Config: testAccCheckCloudflareLoadBalancerConfigStandardZone(zoneID, zone, rnd),
713+
Check: resource.ComposeTestCheckFunc(
714+
testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer),
715+
testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID),
716+
),
717+
} },
718+
})
719+
}
720+
490721
func TestAccCloudflareLoadBalancer_Rules(t *testing.T) {
491722
var loadBalancer cfold.LoadBalancer
492723
zone := os.Getenv("CLOUDFLARE_DOMAIN")
@@ -741,6 +972,50 @@ func testAccCheckCloudflareLoadBalancerConfigDuplicatePool(zoneID, zone, id stri
741972
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigduplicatepool.tf", zoneID, zone, id)
742973
}
743974

975+
func testAccCheckCloudflareLoadBalancerConfigAccount(zoneID, zone, id string) string {
976+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigaccount.tf", zoneID, zone, id)
977+
}
978+
979+
func testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverFalse(zoneID, zone, id string) string {
980+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigadaptiveroutingfailoverfalse.tf", zoneID, zone, id)
981+
}
982+
983+
func testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverTrue(zoneID, zone, id string) string {
984+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigadaptiveroutingfailovertrue.tf", zoneID, zone, id)
985+
}
986+
987+
func testAccCheckCloudflareLoadBalancerConfigCountryPools(zoneID, zone, id string) string {
988+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcountrypools.tf", zoneID, zone, id)
989+
}
990+
991+
func testAccCheckCloudflareLoadBalancerConfigCustomLocationStrategy(zoneID, zone, id string) string {
992+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomlocationstrategy.tf", zoneID, zone, id)
993+
}
994+
995+
func testAccCheckCloudflareLoadBalancerConfigCustomPort(zoneID, zone, id string) string {
996+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomport.tf", zoneID, zone, id)
997+
}
998+
999+
func testAccCheckCloudflareLoadBalancerConfigCustomSessionAffinityAttributes(zoneID, zone, id string) string {
1000+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomsessionaffinityattributes.tf", zoneID, zone, id)
1001+
}
1002+
1003+
func testAccCheckCloudflareLoadBalancerConfigCustomTTL(zoneID, zone, id string) string {
1004+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomttl.tf", zoneID, zone, id)
1005+
}
1006+
1007+
func testAccCheckCloudflareLoadBalancerConfigLocationStrategyAlwaysResolverIP(zoneID, zone, id string) string {
1008+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfiglocationstrategyalwaysresolverip.tf", zoneID, zone, id)
1009+
}
1010+
1011+
func testAccCheckCloudflareLoadBalancerConfigLocationStrategyNeverPop(zoneID, zone, id string) string {
1012+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfiglocationstrategyneverpop.tf", zoneID, zone, id)
1013+
}
1014+
1015+
func testAccCheckCloudflareLoadBalancerConfigStandardZone(zoneID, zone, id string) string {
1016+
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigstandardzone.tf", zoneID, zone, id)
1017+
}
1018+
7441019
func testAccCheckCloudflareLoadBalancerConfigRules(zoneID, zone, id string) string {
7451020
return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigrules.tf", zoneID, zone, id)
7461021
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
resource "cloudflare_load_balancer" "%[3]s" {
2+
# Account-level LB (no zone_id)
3+
name = "tf-testacc-lb-account-%[3]s"
4+
5+
default_pools = ["${cloudflare_load_balancer_pool.%[1]s.id}"]
6+
fallback_pool = "${cloudflare_load_balancer_pool.%[1]s.id}"
7+
8+
region_pools = {
9+
WNAM = ["${cloudflare_load_balancer_pool.%[1]s.id}"]
10+
SSAM = ["${cloudflare_load_balancer_pool.%[1]s.id}"]
11+
}
12+
pop_pools = {
13+
LHR = ["${cloudflare_load_balancer_pool.%[1]s.id}"]
14+
}
15+
steering_policy = "geo"
16+
proxied = true
17+
random_steering = {
18+
default_weight = 1.00
19+
}
20+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
resource "cloudflare_load_balancer" "%[3]s" {
2+
zone_id = "%[1]s"
3+
name = "%[3]s.%[2]s"
4+
fallback_pool = "${cloudflare_load_balancer_pool.%[1]s.id}"
5+
default_pools = ["${cloudflare_load_balancer_pool.%[1]s.id}"]
6+
description = "Load Balancer for %[2]s"
7+
ttl = 30
8+
proxied = false
9+
steering_policy = "off"
10+
11+
adaptive_routing {
12+
failover_across_pools = false
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
resource "cloudflare_load_balancer" "%[3]s" {
2+
zone_id = "%[1]s"
3+
name = "%[3]s.%[2]s"
4+
fallback_pool = "${cloudflare_load_balancer_pool.%[1]s.id}"
5+
default_pools = ["${cloudflare_load_balancer_pool.%[1]s.id}"]
6+
description = "Load Balancer for %[2]s"
7+
ttl = 30
8+
proxied = false
9+
steering_policy = "off"
10+
11+
adaptive_routing {
12+
failover_across_pools = true
13+
}
14+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
resource "cloudflare_load_balancer" "%[3]s" {
2+
zone_id = "%[1]s"
3+
name = "tf-testacc-lb-country-pools-%[3]s.%[2]s"
4+
5+
fallback_pool = "${cloudflare_load_balancer_pool.%[3]s.id}"
6+
default_pools = ["${cloudflare_load_balancer_pool.%[3]s.id}"]
7+
8+
region_pools = {
9+
WNAM = ["${cloudflare_load_balancer_pool.%[3]s.id}"]
10+
IN = ["${cloudflare_load_balancer_pool.%[3]s.id}"]
11+
}
12+
country_pools = {
13+
IN = ["${cloudflare_load_balancer_pool.%[3]s.id}"]
14+
}
15+
pop_pools = {
16+
LHR = ["{cloudflare_load_balancer_pool.%[3]s.id}"]
17+
}
18+
session_affinity = "cookie"
19+
steering_policy = "geo"
20+
proxied = true
21+
session_affinity_attributes = {
22+
samesite = "Auto"
23+
secure = "Auto"
24+
drain_duration = 0
25+
zero_downtime_failover = "none"
26+
}
27+
random_steering = {
28+
default_weight = 1.00
29+
}
30+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
resource "cloudflare_load_balancer" "%[3]s" {
2+
zone_id = "%[1]s"
3+
name = "tf-testacc-lb-custom-location-strategy-%[3]s.%[2]s"
4+
5+
default_pools = ["${cloudflare_load_balancer_pool.%[3]s.id}"]
6+
fallback_pool = "${cloudflare_load_balancer_pool.%[3]s.id}"
7+
8+
steering_policy = "off"
9+
proxied = true
10+
11+
location_strategy = {
12+
prefer_ecs = "always"
13+
mode = "resolver_ip"
14+
}
15+
}

0 commit comments

Comments
 (0)