library
turbot/gcp_thrifty
- Detect & correct AlloyDB clusters exceeding max age
- Detect & correct long-running AlloyDB instances exceeding max age
- Detect & correct Compute addresses if unattached
- Detect & correct Compute disks attached to stopped instances
- Detect & correct Compute disks exceeding max size
- Detect & correct Compute disks if unattached
- Detect & correct Compute disks with low usage
- Detect & correct Compute engine instances exceeding max age
- Detect & correct Compute engine instances large
- Detect & correct Compute instances with low utilization
- Detect & correct Compute node groups without autoscaling
- Detect & correct Compute snapshots exceeding max age
- Detect & correct Dataproc clusters without autoscaling
- Detect & correct Kubernetes clusters exceeding max age
- Detect & correct GKE clusters without vertical pod autoscaling
- Detect & correct Logging Buckets with high retention period
- Detect & correct Redis instances exceeding max age
- Detect & correct SQL database instances exceeding max age
- Detect & correct SQL DB instances with low connection count
- Detect & correct SQL DB instances with low cpu utilization
- Detect & correct Storage buckets without lifecycle policies
- Detect & correct VPN gateways with no tunnels
Get Involved
Version
Detect & correct compute disk attached to stopped instances
Overview
Compute disk attached to stopped instances still incur costs even though they may not be used; these should be reviewed and either detached from the stopped instance or deleted.
This query trigger detects compute disk attached to stopped instances and then either sends a notification or attempts to perform a predefined corrective action.
Getting Started
By default, this trigger is disabled, however it can be configured by setting the below variables
compute_disks_attached_to_stopped_instances_trigger_enabled
should be set totrue
as the default isfalse
.compute_disks_attached_to_stopped_instances_trigger_schedule
should be set to your desired running schedulecompute_disks_attached_to_stopped_instances_default_action
should be set to your desired action (i.e."notify"
for notifications or"detach_compute_disk"
to detach the disk from the instance or"detach_and_delete_compute_disk"
to detach the disk from the instance and delete it or"snapshot_and_detach_and_delete_disk"
to snapshot the disk, detach the disk from the instance and delete the disk).
Then starting the server:
flowpipe server
or if you've set the variables in a .fpvars
file:
flowpipe server --var-file=/path/to/your.fpvars
Query
select concat(d.name, ' [', d.zone, '/', d.project, ']') as title, d.name as disk_name, d.zone as zone, d.project as project, d._ctx ->> 'connection_name' as cred, i.name as instance_namefrom gcp_compute_disk as d left join gcp_compute_instance as i on d.users ? & ARRAY [ i.self_link ]where d.users is not null and i.status != 'RUNNING';
Schedule
15m