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)
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{
Filters: BuildEC2Filters(cloud),
Filters: filters,
}
var resourceTrackers []*resources.Resource
@ -356,29 +359,6 @@ func ListInstances(cloud fi.Cloud, vpcID, clusterName string) ([]*resources.Reso
for _, instance := range reservation.Instances {
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{
Name: FindName(instance.Tags),
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, "vpc:"+aws.StringValue(instance.VpcId))
hasVolumes := false
for _, volume := range instance.BlockDeviceMappings {
if volume.Ebs == nil || fi.ValueOf(volume.Ebs.DeleteOnTermination) {
continue
}
blocks = append(blocks, "volume:"+aws.StringValue(volume.Ebs.VolumeId))
hasVolumes = true
}
for _, sg := range instance.SecurityGroups {
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
// Track only instances not managed by ASG or with volumes
if !managedByASG || hasVolumes {
resourceTrackers = append(resourceTrackers, resourceTracker)
}
resourceTrackers = append(resourceTrackers, resourceTracker)
}
}
return true