diff --git a/stackit/internal/services/dns/recordset/resource.go b/stackit/internal/services/dns/recordset/resource.go index 0d06449d..b00e67e6 100644 --- a/stackit/internal/services/dns/recordset/resource.go +++ b/stackit/internal/services/dns/recordset/resource.go @@ -5,8 +5,6 @@ import ( "fmt" "strings" - dnsUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/dns/utils" - "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" @@ -23,6 +21,7 @@ import ( "github.com/stackitcloud/stackit-sdk-go/services/dns/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" + dnsUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/dns/utils" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/validate" ) diff --git a/stackit/internal/validate/validate.go b/stackit/internal/validate/validate.go index 593fad27..0af0f3c6 100644 --- a/stackit/internal/validate/validate.go +++ b/stackit/internal/validate/validate.go @@ -132,6 +132,14 @@ func RecordSet() *Validator { )) } case "CNAME": + name := req.ConfigValue.ValueString() + if name == "" || name[len(name)-1] != '.' { + resp.Diagnostics.Append(validatordiag.InvalidAttributeValueDiagnostic( + req.Path, + "value must be a Fully Qualified Domain Name (FQDN) and end with dot '.'", + req.ConfigValue.ValueString(), + )) + } case "NS": case "MX": case "TXT": diff --git a/stackit/internal/validate/validate_test.go b/stackit/internal/validate/validate_test.go index beb2ed75..3436a7a1 100644 --- a/stackit/internal/validate/validate_test.go +++ b/stackit/internal/validate/validate_test.go @@ -264,8 +264,14 @@ func TestRecordSet(t *testing.T) { false, }, { - "CNAME record", - "some-record", + "CNAME record Not a Fully Qualified Domain Name", + "stackit.de", + "CNAME", + false, + }, + { + "CNAME record ok Fully Qualified Domain Name", + "stackit.de.", "CNAME", true, },