diff --git a/docs/resources/kubernetes_cluster.md b/docs/resources/kubernetes_cluster.md index 4e5b0368..d566273d 100644 --- a/docs/resources/kubernetes_cluster.md +++ b/docs/resources/kubernetes_cluster.md @@ -106,8 +106,8 @@ Required: - `enable_kubernetes_version_updates` (Boolean) Flag to enable/disable auto-updates of the Kubernetes version - `enable_machine_image_version_updates` (Boolean) Flag to enable/disable auto-updates of the OS image version -- `end` (String) RFC3339 Date time for maintenance window end. i.e. `2019-08-24T23:30:00Z` -- `start` (String) RFC3339 Date time for maintenance window start. i.e. `2019-08-24T23:00:00Z` +- `end` (String) RFC3339 Date time for maintenance window end. i.e. `0000-01-01T23:30:00Z` +- `start` (String) RFC3339 Date time for maintenance window start. i.e. `0000-01-01T23:00:00Z` diff --git a/stackit/internal/resources/kubernetes/cluster/actions.go b/stackit/internal/resources/kubernetes/cluster/actions.go index b3f913e1..7bb20805 100644 --- a/stackit/internal/resources/kubernetes/cluster/actions.go +++ b/stackit/internal/resources/kubernetes/cluster/actions.go @@ -2,6 +2,7 @@ package cluster import ( "context" + "encoding/json" "fmt" "net/http" "strings" @@ -95,6 +96,12 @@ func (r Resource) createOrUpdateCluster(ctx context.Context, diags *diag.Diagnos }, ) if agg := validate.Response(resp, err); agg != nil { + if resp != nil && resp.JSON400 != nil { + b, err := json.MarshalIndent(*resp.JSON400, "", " ") + if err == nil { + diags.AddError("server response", string(b)) + } + } diags.AddError("failed during SKE create/update", agg.Error()) return } diff --git a/stackit/internal/resources/kubernetes/cluster/schema.go b/stackit/internal/resources/kubernetes/cluster/schema.go index 90ec9f5f..96559bf9 100644 --- a/stackit/internal/resources/kubernetes/cluster/schema.go +++ b/stackit/internal/resources/kubernetes/cluster/schema.go @@ -3,12 +3,14 @@ package cluster import ( "context" "fmt" + "regexp" "github.com/SchwarzIT/community-stackit-go-client/pkg/services/kubernetes/v1.0/cluster" clientValidate "github.com/SchwarzIT/community-stackit-go-client/pkg/validate" "github.com/SchwarzIT/terraform-provider-stackit/stackit/internal/common" "github.com/SchwarzIT/terraform-provider-stackit/stackit/pkg/validate" "github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/booldefault" @@ -265,12 +267,18 @@ func (r *Resource) Schema(ctx context.Context, req resource.SchemaRequest, resp Required: true, }, "start": schema.StringAttribute{ - Description: "RFC3339 Date time for maintenance window start. i.e. `2019-08-24T23:00:00Z`", + Description: "RFC3339 Date time for maintenance window start. i.e. `0000-01-01T23:00:00Z`", Required: true, + Validators: []validator.String{ + stringvalidator.RegexMatches(regexp.MustCompile(`^(0000-01-01T\d{2}:\d{2}:\d{2}Z)$`), "validate RFC3339 date time that starts with 0000-01-01"), + }, }, "end": schema.StringAttribute{ - Description: "RFC3339 Date time for maintenance window end. i.e. `2019-08-24T23:30:00Z`", + Description: "RFC3339 Date time for maintenance window end. i.e. `0000-01-01T23:30:00Z`", Required: true, + Validators: []validator.String{ + stringvalidator.RegexMatches(regexp.MustCompile(`^(0000-01-01T\d{2}:\d{2}:\d{2}Z)$`), "validate RFC3339 date time that starts with 0000-01-01"), + }, }, }, },