enforce recreation of resources after field change
This commit is contained in:
parent
f6f8dc17c1
commit
39b88941a6
2 changed files with 68 additions and 8 deletions
|
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/hashicorp/terraform-plugin-framework/path"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier"
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier"
|
||||
"github.com/hashicorp/terraform-plugin-framework/types"
|
||||
|
|
@ -70,34 +71,58 @@ func (r *AppResource) Schema(ctx context.Context, req resource.SchemaRequest, re
|
|||
"name": schema.StringAttribute{
|
||||
MarkdownDescription: "App name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"app_version": schema.StringAttribute{
|
||||
MarkdownDescription: "App version",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"organization": schema.StringAttribute{
|
||||
MarkdownDescription: "Organization name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"manifest": schema.StringAttribute{
|
||||
MarkdownDescription: "Kubernetes manifest YAML content",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"region": schema.StringAttribute{
|
||||
MarkdownDescription: "Region (e.g., US, EU)",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"cloudlet_org": schema.StringAttribute{
|
||||
MarkdownDescription: "Cloudlet organization",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"cloudlet_name": schema.StringAttribute{
|
||||
MarkdownDescription: "Cloudlet name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"flavor_name": schema.StringAttribute{
|
||||
MarkdownDescription: "Flavor name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
},
|
||||
Blocks: map[string]schema.Block{
|
||||
|
|
@ -111,18 +136,30 @@ func (r *AppResource) Schema(ctx context.Context, req resource.SchemaRequest, re
|
|||
"protocol": schema.StringAttribute{
|
||||
MarkdownDescription: "Protocol (tcp, udp, icmp)",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"port_range_min": schema.Int64Attribute{
|
||||
MarkdownDescription: "Minimum port number",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.Int64{
|
||||
int64planmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"port_range_max": schema.Int64Attribute{
|
||||
MarkdownDescription: "Maximum port number",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.Int64{
|
||||
int64planmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"remote_cidr": schema.StringAttribute{
|
||||
MarkdownDescription: "Remote CIDR (e.g., 0.0.0.0/0)",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -60,42 +60,65 @@ func (r *AppInstanceResource) Schema(ctx context.Context, req resource.SchemaReq
|
|||
"name": schema.StringAttribute{
|
||||
MarkdownDescription: "AppInstance name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"organization": schema.StringAttribute{
|
||||
MarkdownDescription: "Organization name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"region": schema.StringAttribute{
|
||||
MarkdownDescription: "Region (e.g., US, EU)",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"cloudlet_org": schema.StringAttribute{
|
||||
MarkdownDescription: "Cloudlet organization",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"cloudlet_name": schema.StringAttribute{
|
||||
MarkdownDescription: "Cloudlet name",
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"app_name": schema.StringAttribute{
|
||||
MarkdownDescription: "Application name",
|
||||
Required: false,
|
||||
Optional: true,
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"app_version": schema.StringAttribute{
|
||||
MarkdownDescription: "Application version",
|
||||
Required: false,
|
||||
Optional: true,
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"app_organization": schema.StringAttribute{
|
||||
MarkdownDescription: "Application organization",
|
||||
Required: false,
|
||||
Optional: true,
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"flavor_name": schema.StringAttribute{
|
||||
MarkdownDescription: "Flavor name",
|
||||
Required: false,
|
||||
Optional: true,
|
||||
Required: true,
|
||||
PlanModifiers: []planmodifier.String{
|
||||
stringplanmodifier.RequiresReplace(),
|
||||
},
|
||||
},
|
||||
"state": schema.StringAttribute{
|
||||
MarkdownDescription: "AppInstance state",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue