Skip to content

Commit 348be2d

Browse files
authored
test(lb): fix TestAccScalewayLbCertificate_Basic (#721)
1 parent f31543e commit 348be2d

File tree

2 files changed

+289
-244
lines changed

2 files changed

+289
-244
lines changed

scaleway/resource_lb_certificate_test.go

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import (
88

99
func TestAccScalewayLbCertificate_Basic(t *testing.T) {
1010
/**
11-
* Note regarding the usage of xip.io
12-
* See the discussion on https://github.com/terraform-providers/terraform-provider-scaleway/pull/396
11+
* See the discussion on https://github.com/scaleway/terraform-provider-scaleway/pull/396
1312
* Long story short, scaleway API will not permit you to request a certificate in case common name is not pointed
1413
* to the load balancer IP (which is unknown before creating it). In production, this can be overcome by introducing
15-
* an additional step which creates a DNS record and depending on it, but for test purposes, xip.io is an ideal solution.
14+
* an additional step which creates a DNS record and depending on it
15+
* We use a DNS name like: 195-154-70-235.lb.fr-par.scw.cloud
1616
*/
1717
tt := NewTestTools(t)
1818
defer tt.Cleanup()
@@ -23,17 +23,20 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
2323
Steps: []resource.TestStep{
2424
{
2525
Config: `
26-
resource scaleway_lb_ip ip01 {}
26+
resource scaleway_lb_ip ip01 {
27+
}
28+
2729
resource scaleway_lb lb01 {
2830
ip_id = scaleway_lb_ip.ip01.id
2931
name = "test-lb"
3032
type = "lb-s"
3133
}
34+
3235
resource scaleway_lb_certificate cert01 {
3336
lb_id = scaleway_lb.lb01.id
3437
name = "test-cert"
3538
letsencrypt {
36-
common_name = "${scaleway_lb.lb01.ip_address}.xip.io"
39+
common_name = "${replace(scaleway_lb_ip.ip01.ip_address,".", "-")}.lb.${scaleway_lb.lb01.region}.scw.cloud"
3740
}
3841
}
3942
`,
@@ -44,18 +47,21 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
4447
},
4548
{
4649
Config: `
47-
resource scaleway_lb_ip ip01 {}
50+
resource scaleway_lb_ip ip01 {
51+
}
52+
4853
resource scaleway_lb lb01 {
49-
ip_id = scaleway_lb_ip.ip01.id
50-
name = "test-lb"
51-
type = "lb-s"
54+
ip_id = scaleway_lb_ip.ip01.id
55+
name = "test-lb"
56+
type = "lb-s"
5257
}
58+
5359
resource scaleway_lb_certificate cert01 {
5460
lb_id = scaleway_lb.lb01.id
5561
name = "test-cert-new"
56-
letsencrypt {
57-
common_name = "${scaleway_lb.lb01.ip_address}.xip.io"
58-
}
62+
letsencrypt {
63+
common_name = "${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.${scaleway_lb.lb01.region}.scw.cloud"
64+
}
5965
}
6066
`,
6167
Check: resource.ComposeTestCheckFunc(
@@ -64,24 +70,27 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
6470
},
6571
{
6672
Config: `
67-
resource scaleway_lb_ip ip01 {}
73+
resource scaleway_lb_ip ip01 {
74+
}
75+
6876
resource scaleway_lb lb01 {
6977
ip_id = scaleway_lb_ip.ip01.id
7078
name = "test-lb"
7179
type = "lb-s"
7280
}
81+
7382
resource scaleway_lb_certificate cert01 {
7483
lb_id = scaleway_lb.lb01.id
7584
name = "test-cert"
76-
letsencrypt {
77-
common_name = "${scaleway_lb.lb01.ip_address}.xip.io"
85+
letsencrypt {
86+
common_name = "${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.${scaleway_lb.lb01.region}.scw.cloud"
7887
subject_alternative_name = [
79-
"sub1.${scaleway_lb.lb01.ip_address}.xip.io",
80-
"sub2.${scaleway_lb.lb01.ip_address}.xip.io"
88+
"sub1.${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.${scaleway_lb.lb01.region}.scw.cloud",
89+
"sub2.${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.${scaleway_lb.lb01.region}.scw.cloud"
8190
]
82-
}
91+
}
8392
}
84-
`,
93+
`,
8594
Check: resource.ComposeTestCheckFunc(
8695
resource.TestCheckResourceAttr("scaleway_lb_certificate.cert01", "name", "test-cert"),
8796
resource.TestCheckResourceAttr("scaleway_lb_certificate.cert01", "letsencrypt.#", "1"),
@@ -90,12 +99,15 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
9099
},
91100
{
92101
Config: `
93-
resource scaleway_lb_ip ip01 {}
102+
resource scaleway_lb_ip ip01 {
103+
}
104+
94105
resource scaleway_lb lb01 {
95106
ip_id = scaleway_lb_ip.ip01.id
96107
name = "test-lb"
97108
type = "lb-s"
98109
}
110+
99111
resource scaleway_lb_certificate cert01 {
100112
lb_id = scaleway_lb.lb01.id
101113
name = "test-custom-cert"

0 commit comments

Comments
 (0)