mirror of https://github.com/kubernetes/kops.git
Revert "aws: Skip deleting ASG instances without volumes"
This commit is contained in:
parent
51b4804bdc
commit
005b693943
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue