Skip to content

Commit 67b240e

Browse files
committed
test(lb): fix TestAccScalewayLbCertificate_Basic
1 parent 68ee162 commit 67b240e

File tree

2 files changed

+286
-233
lines changed

2 files changed

+286
-233
lines changed

scaleway/resource_lb_certificate_test.go

Lines changed: 40 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,22 @@ 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+
region = "fr-par"
28+
}
29+
2730
resource scaleway_lb lb01 {
2831
ip_id = scaleway_lb_ip.ip01.id
2932
name = "test-lb"
3033
type = "lb-s"
34+
region = "fr-par"
3135
}
36+
3237
resource scaleway_lb_certificate cert01 {
3338
lb_id = scaleway_lb.lb01.id
3439
name = "test-cert"
3540
letsencrypt {
36-
common_name = "${scaleway_lb.lb01.ip_address}.xip.io"
41+
common_name = "${replace(scaleway_lb_ip.ip01.ip_address,".", "-")}.lb.fr-par.scw.cloud"
3742
}
3843
}
3944
`,
@@ -44,18 +49,23 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
4449
},
4550
{
4651
Config: `
47-
resource scaleway_lb_ip ip01 {}
52+
resource scaleway_lb_ip ip01 {
53+
region = "fr-par"
54+
}
55+
4856
resource scaleway_lb lb01 {
49-
ip_id = scaleway_lb_ip.ip01.id
50-
name = "test-lb"
51-
type = "lb-s"
57+
ip_id = scaleway_lb_ip.ip01.id
58+
name = "test-lb"
59+
type = "lb-s"
60+
region = "fr-par"
5261
}
62+
5363
resource scaleway_lb_certificate cert01 {
5464
lb_id = scaleway_lb.lb01.id
5565
name = "test-cert-new"
56-
letsencrypt {
57-
common_name = "${scaleway_lb.lb01.ip_address}.xip.io"
58-
}
66+
letsencrypt {
67+
common_name = "${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.fr-par.scw.cloud"
68+
}
5969
}
6070
`,
6171
Check: resource.ComposeTestCheckFunc(
@@ -64,24 +74,29 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
6474
},
6575
{
6676
Config: `
67-
resource scaleway_lb_ip ip01 {}
77+
resource scaleway_lb_ip ip01 {
78+
region = "fr-par"
79+
}
80+
6881
resource scaleway_lb lb01 {
6982
ip_id = scaleway_lb_ip.ip01.id
7083
name = "test-lb"
7184
type = "lb-s"
85+
region = "fr-par"
7286
}
87+
7388
resource scaleway_lb_certificate cert01 {
7489
lb_id = scaleway_lb.lb01.id
7590
name = "test-cert"
76-
letsencrypt {
77-
common_name = "${scaleway_lb.lb01.ip_address}.xip.io"
91+
letsencrypt {
92+
common_name = "${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.fr-par.scw.cloud"
7893
subject_alternative_name = [
79-
"sub1.${scaleway_lb.lb01.ip_address}.xip.io",
80-
"sub2.${scaleway_lb.lb01.ip_address}.xip.io"
94+
"sub1.${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.fr-par.scw.cloud",
95+
"sub2.${replace(scaleway_lb.lb01.ip_address, ".", "-")}.lb.fr-par.scw.cloud"
8196
]
82-
}
97+
}
8398
}
84-
`,
99+
`,
85100
Check: resource.ComposeTestCheckFunc(
86101
resource.TestCheckResourceAttr("scaleway_lb_certificate.cert01", "name", "test-cert"),
87102
resource.TestCheckResourceAttr("scaleway_lb_certificate.cert01", "letsencrypt.#", "1"),
@@ -90,12 +105,17 @@ func TestAccScalewayLbCertificate_Basic(t *testing.T) {
90105
},
91106
{
92107
Config: `
93-
resource scaleway_lb_ip ip01 {}
108+
resource scaleway_lb_ip ip01 {
109+
region = "fr-par"
110+
}
111+
94112
resource scaleway_lb lb01 {
95113
ip_id = scaleway_lb_ip.ip01.id
96114
name = "test-lb"
97115
type = "lb-s"
116+
region = "fr-par"
98117
}
118+
99119
resource scaleway_lb_certificate cert01 {
100120
lb_id = scaleway_lb.lb01.id
101121
name = "test-custom-cert"

0 commit comments

Comments
 (0)