Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revisit forceDelete usability #3807

Open
t0yv0 opened this issue Apr 11, 2024 · 3 comments
Open

Revisit forceDelete usability #3807

t0yv0 opened this issue Apr 11, 2024 · 3 comments
Labels
impact/usability Something that impacts users' ability to use the product easily and intuitively kind/enhancement Improvements or new features

Comments

@t0yv0
Copy link
Member

t0yv0 commented Apr 11, 2024

Hello!

  • Vote on this issue by adding a 馃憤 reaction
  • If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details

A number of resources have forceDelete functionality that might need revisiting. In particular in Pulumi Deployments Dev Stacks scenario Pulumi needs to be able to delete resources.

Exported grep results:

sdk/nodejs/autoscaling/policy.ts:33: *     forceDelete: true,
sdk/nodejs/autoscaling/schedule.ts:24: *     forceDelete: true,
sdk/nodejs/autoscaling/group.ts:38: *     forceDelete: true,
sdk/nodejs/autoscaling/group.ts:406: *     forceDelete: true,
sdk/nodejs/autoscaling/group.ts:554:    public readonly forceDelete!: pulumi.Output<boolean | undefined>;
sdk/nodejs/autoscaling/group.ts:558:    public readonly forceDeleteWarmPool!: pulumi.Output<boolean | undefined>;
sdk/nodejs/autoscaling/group.ts:734:            resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
sdk/nodejs/autoscaling/group.ts:735:            resourceInputs["forceDeleteWarmPool"] = state ? state.forceDeleteWarmPool : undefined;
sdk/nodejs/autoscaling/group.ts:783:            resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
sdk/nodejs/autoscaling/group.ts:784:            resourceInputs["forceDeleteWarmPool"] = args ? args.forceDeleteWarmPool : undefined;
sdk/nodejs/autoscaling/group.ts:872:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/autoscaling/group.ts:876:    forceDeleteWarmPool?: pulumi.Input<boolean>;
sdk/nodejs/autoscaling/group.ts:1076:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/autoscaling/group.ts:1080:    forceDeleteWarmPool?: pulumi.Input<boolean>;
sdk/nodejs/redshift/endpointAuthorization.ts:79:    public readonly forceDelete!: pulumi.Output<boolean | undefined>;
sdk/nodejs/redshift/endpointAuthorization.ts:110:            resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
sdk/nodejs/redshift/endpointAuthorization.ts:124:            resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
sdk/nodejs/redshift/endpointAuthorization.ts:159:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/redshift/endpointAuthorization.ts:189:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/ecs/taskSet.ts:105:    public readonly forceDelete!: pulumi.Output<boolean | undefined>;
sdk/nodejs/ecs/taskSet.ts:188:            resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
sdk/nodejs/ecs/taskSet.ts:218:            resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
sdk/nodejs/ecs/taskSet.ts:264:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/ecs/taskSet.ts:350:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/ecr/repository.ts:78:    public readonly forceDelete!: pulumi.Output<boolean | undefined>;
sdk/nodejs/ecr/repository.ts:125:            resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
sdk/nodejs/ecr/repository.ts:136:            resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
sdk/nodejs/ecr/repository.ts:167:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/ecr/repository.ts:212:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/elasticbeanstalk/applicationVersion.ts:97:    public readonly forceDelete!: pulumi.Output<boolean | undefined>;
sdk/nodejs/elasticbeanstalk/applicationVersion.ts:136:            resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
sdk/nodejs/elasticbeanstalk/applicationVersion.ts:155:            resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
sdk/nodejs/elasticbeanstalk/applicationVersion.ts:190:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/elasticbeanstalk/applicationVersion.ts:232:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/lightsail/bucket.ts:77:     * Force Delete non-empty buckets using `pulumi destroy`. AWS by default will not delete an s3 bucket which is not empty, to prevent losing bucket data and affecting other resources in lightsail. If `forceDelete` is set to `true` the bucket will be deleted even when not empty.
sdk/nodejs/lightsail/bucket.ts:79:    public readonly forceDelete!: pulumi.Output<boolean | undefined>;
sdk/nodejs/lightsail/bucket.ts:121:            resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
sdk/nodejs/lightsail/bucket.ts:134:            resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
sdk/nodejs/lightsail/bucket.ts:171:     * Force Delete non-empty buckets using `pulumi destroy`. AWS by default will not delete an s3 bucket which is not empty, to prevent losing bucket data and affecting other resources in lightsail. If `forceDelete` is set to `true` the bucket will be deleted even when not empty.
sdk/nodejs/lightsail/bucket.ts:173:    forceDelete?: pulumi.Input<boolean>;
sdk/nodejs/lightsail/bucket.ts:208:     * Force Delete non-empty buckets using `pulumi destroy`. AWS by default will not delete an s3 bucket which is not empty, to prevent losing bucket data and affecting other resources in lightsail. If `forceDelete` is set to `true` the bucket will be deleted even when not empty.
sdk/nodejs/lightsail/bucket.ts:210:    forceDelete?: pulumi.Input<boolean>;

Affected area/feature

@t0yv0 t0yv0 added kind/enhancement Improvements or new features needs-triage Needs attention from the triage team labels Apr 11, 2024
@t0yv0
Copy link
Member Author

t0yv0 commented Apr 11, 2024

Kudos @AaronFriel for pointing this out.

@t0yv0
Copy link
Member Author

t0yv0 commented Apr 12, 2024

Talking with @corymhall here we could also take a provider option to set in dev stacks that would make all forceDelete assume true.

@AaronFriel
Copy link
Member

What's confusing to me is that it feels like what should happen here is that it fights with our resource option protect. I can:

  • Set forceDelete: true, protect: true - nonsense, resource will never be deleted
  • Set forceDelete: false, protect: false - nonsense, resource will fail on delete

@t0yv0 t0yv0 added impact/usability Something that impacts users' ability to use the product easily and intuitively and removed needs-triage Needs attention from the triage team labels Apr 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact/usability Something that impacts users' ability to use the product easily and intuitively kind/enhancement Improvements or new features
Projects
None yet
Development

No branches or pull requests

2 participants