library
turbot/gcp_thrifty

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 to true as the default is false.
  • compute_disks_attached_to_stopped_instances_trigger_schedule should be set to your desired running schedule
  • compute_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_name
from
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