Skip to content

Commit 87bc741

Browse files
authored
feat(dns): add validation for cname record-sets (#1019)
relates to #1014 and STACKITTPR-375
1 parent 82c1d1e commit 87bc741

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

stackit/internal/services/dns/recordset/resource.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import (
55
"fmt"
66
"strings"
77

8-
dnsUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/dns/utils"
9-
108
"github.com/hashicorp/terraform-plugin-framework-validators/int64validator"
119
"github.com/hashicorp/terraform-plugin-framework-validators/listvalidator"
1210
"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
@@ -23,6 +21,7 @@ import (
2321
"github.com/stackitcloud/stackit-sdk-go/services/dns/wait"
2422
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
2523
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core"
24+
dnsUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/dns/utils"
2625
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
2726
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate"
2827
)

stackit/internal/validate/validate.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,14 @@ func RecordSet() *Validator {
132132
))
133133
}
134134
case "CNAME":
135+
name := req.ConfigValue.ValueString()
136+
if name == "" || name[len(name)-1] != '.' {
137+
resp.Diagnostics.Append(validatordiag.InvalidAttributeValueDiagnostic(
138+
req.Path,
139+
"value must be a Fully Qualified Domain Name (FQDN) and end with dot '.'",
140+
req.ConfigValue.ValueString(),
141+
))
142+
}
135143
case "NS":
136144
case "MX":
137145
case "TXT":

stackit/internal/validate/validate_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,14 @@ func TestRecordSet(t *testing.T) {
264264
false,
265265
},
266266
{
267-
"CNAME record",
268-
"some-record",
267+
"CNAME record Not a Fully Qualified Domain Name",
268+
"stackit.de",
269+
"CNAME",
270+
false,
271+
},
272+
{
273+
"CNAME record ok Fully Qualified Domain Name",
274+
"stackit.de.",
269275
"CNAME",
270276
true,
271277
},

0 commit comments

Comments
 (0)