Revert "aws: Skip deleting ASG instances without volumes"

This commit is contained in:
Ciprian Hacman 2024-01-12 18:07:10 +02:00
parent 51b4804bdc
commit 005b693943
1 changed files with 5 additions and 30 deletions

View File

@ -345,8 +345,11 @@ func ListInstances(cloud fi.Cloud, vpcID, clusterName string) ([]*resources.Reso
c := cloud.(awsup.AWSCloud) c := cloud.(awsup.AWSCloud)
klog.V(2).Infof("Querying EC2 instances") klog.V(2).Infof("Querying EC2 instances")
filters := BuildEC2Filters(cloud)
filters = append(filters, awsup.NewEC2Filter("vpc-id", vpcID))
filters = append(filters, awsup.NewEC2Filter("instance-state-name", ec2.InstanceStateNameRunning))
request := &ec2.DescribeInstancesInput{ request := &ec2.DescribeInstancesInput{
Filters: BuildEC2Filters(cloud), Filters: filters,
} }
var resourceTrackers []*resources.Resource var resourceTrackers []*resources.Resource
@ -356,29 +359,6 @@ func ListInstances(cloud fi.Cloud, vpcID, clusterName string) ([]*resources.Reso
for _, instance := range reservation.Instances { for _, instance := range reservation.Instances {
id := aws.StringValue(instance.InstanceId) id := aws.StringValue(instance.InstanceId)
managedByASG := false
for _, tag := range instance.Tags {
if fi.ValueOf(tag.Key) == "aws:autoscaling:groupName" {
managedByASG = true
break
}
}
if instance.State != nil {
stateName := fi.ValueOf(instance.State.Name)
switch stateName {
case "terminated", "shutting-down":
continue
case "running", "stopped", "pending":
// We need to delete
klog.V(4).Infof("instance %q has state=%q", id, stateName)
default:
klog.Infof("unknown instance state for %q: %q", id, stateName)
}
}
resourceTracker := &resources.Resource{ resourceTracker := &resources.Resource{
Name: FindName(instance.Tags), Name: FindName(instance.Tags),
ID: id, ID: id,
@ -392,13 +372,11 @@ func ListInstances(cloud fi.Cloud, vpcID, clusterName string) ([]*resources.Reso
blocks = append(blocks, "subnet:"+aws.StringValue(instance.SubnetId)) blocks = append(blocks, "subnet:"+aws.StringValue(instance.SubnetId))
blocks = append(blocks, "vpc:"+aws.StringValue(instance.VpcId)) blocks = append(blocks, "vpc:"+aws.StringValue(instance.VpcId))
hasVolumes := false
for _, volume := range instance.BlockDeviceMappings { for _, volume := range instance.BlockDeviceMappings {
if volume.Ebs == nil || fi.ValueOf(volume.Ebs.DeleteOnTermination) { if volume.Ebs == nil || fi.ValueOf(volume.Ebs.DeleteOnTermination) {
continue continue
} }
blocks = append(blocks, "volume:"+aws.StringValue(volume.Ebs.VolumeId)) blocks = append(blocks, "volume:"+aws.StringValue(volume.Ebs.VolumeId))
hasVolumes = true
} }
for _, sg := range instance.SecurityGroups { for _, sg := range instance.SecurityGroups {
blocks = append(blocks, "security-group:"+aws.StringValue(sg.GroupId)) blocks = append(blocks, "security-group:"+aws.StringValue(sg.GroupId))
@ -406,10 +384,7 @@ func ListInstances(cloud fi.Cloud, vpcID, clusterName string) ([]*resources.Reso
resourceTracker.Blocks = blocks resourceTracker.Blocks = blocks
// Track only instances not managed by ASG or with volumes resourceTrackers = append(resourceTrackers, resourceTracker)
if !managedByASG || hasVolumes {
resourceTrackers = append(resourceTrackers, resourceTracker)
}
} }
} }
return true return true