How to Clean Up Expired Resources
A resource can be tagged with an expiration tag that instructs Fix Inventory to clean it up after it has reached a certain age. This can serve as a safety net for when a CI job fails or the IaC tool aborts halfway through its run, or even as the primary means of managing resource lifecycles.
Fix Inventory's cleanup-expired
infrastructure app can find and delete expired resources.
Prerequisites​
This guide assumes that you have already installed and configured Fix Inventory to collect your cloud resources.
Directions​
-
Execute the following command in Fix Inventory Shell to open the Fix Inventory Worker configuration for editing:
> config edit fix.worker
-
Enable cleanup by modifying the
fixworker
section of the configuration as follows:fixworker:
# Enable cleanup of resources
cleanup: true
# Do not actually cleanup resources, just create log messages
cleanup_dry_run: false
# How many cleanup threads to run in parallel
cleanup_pool_size: 16When cleanup is enabled, marked resources will be deleted as a part of the
collect_and_cleanup
workflow, which runs each hour by default.tipSet
cleanup_dry_run
totrue
to simulate cleanup without actually deleting resources. -
Use the
app install
command to install thecleanup-expired
app:> app install cleanup-expired
-
Run the app using the
app run
command:> app run cleanup-expired
tipAdd the optional
--dry-run
flag to see what commands the app would perform, without actually executing them.noteItems tagged with
expiration: never
will not be flagged for cleanup. -
Create an event-based job to run the app automatically:
> jobs create --name "Clean Up Expired Resources" --wait-for-event cleanup_plan 'app run cleanup-expired'
infoThe
cleanup-expired
infrastructure app will now run each time Fix Inventory emits thecleanup_plan
event. Thepost_cleanup_plan
event is emitted in thecleanup
phase of thecollect_and_cleanup
workflow.
Each time the cleanup-expired
infrastructure app runs, expired resources will be flagged for removal during the next cleanup run.
A resource's expiration time can be defined either with an ISO 8601 timestamp or time delta:
Tag Name | Description | Example |
---|---|---|
fix:expires | ISO 8601 timestamp | 2022-09-21T10:40:11+00:00 |
fix:expiration or expiration | Time delta from resource creation time | 24h |
Please see the Resource Expiration for more information about expiration tags.
If you would like to apply expiration tags to existing resources, How to Find Untagged Resources describes how to find untagged resources.
How to Clean Up Untagged Resources describes how to clean up untagged resources, which can be helpful in enforcing tagging policies.