Garbage Collection for Assets
See original GitHub issueDescription
Assets which are uploaded to the CDK’s S3 bucket and ECR repository are never deleted. This will incur costs for users in the long term. We should come up with a story on how those should be garbage collected safely.
Initially we should offer cdk gc
which will track down unused assets (e.g. by tracing them back from deployed stacks) and offering users to delete them. We can offer an option to automatically run this after every deployment (either in CLI or through CI/CD). Later we can even offer a construct that you deploy to your environment and it can do that for you.
Proposed usage:
cdk gc [ENVIRONMENT...] [--list] [--type=s3|ecr]
Examples:
This command will find all orphaned S3 and ECR assets in a specific AWS environment and will delete them:
cdk gc aws://ACCOUNT/REGION
This command will garbage collect all assets in all environments that belong to the current CDK app (if cdk.json
exists):
cdk gc
Just list orphaned assets:
cdk gc --list
Roles
Role | User |
---|---|
Proposed by | @eladb |
Author(s) | @kaizen3031593 |
API Bar Raiser | @njlynch |
Stakeholders | @rix0rrr @nija-at |
See RFC Process for details
Workflow
- Tracking issue created (label:
status/proposed
) - API bar raiser assigned (ping us at #aws-cdk-rfcs if needed)
- Kick off meeting
- RFC pull request submitted (label:
status/review
) - Community reach out (via Slack and/or Twitter)
- API signed-off (label
api-approved
applied to pull request) - Final comments period (label:
status/final-comments-period
) - Approved and merged (label:
status/approved
) - Execution plan submitted (label:
status/planning
) - Plan approved and merged (label:
status/implementing
) - Implementation complete (label:
status/done
)
Author is responsible to progress the RFC according to this checklist, and apply the relevant labels to this issue so that the RFC table in README gets updated.
Issue Analytics
- State:
- Created 5 years ago
- Reactions:137
- Comments:24 (5 by maintainers)
Top GitHub Comments
See https://github.com/jogold/cloudstructs/blob/master/src/toolkit-cleaner/README.md for a working construct that does asset garbage collection.
We are approaching 0.5TB of assets in the staging bucket. I can only imagine how much large companies have 😦