in internal/resources/providers/awslib/cluster_name_provider.go [72:103]
func (provider EKSClusterNameProvider) getClusterNameFromInstanceTags(ctx context.Context, cfg aws.Config, instanceId string) (string, error) {
input := &ec2.DescribeInstancesInput{
InstanceIds: []string{instanceId},
}
svc := ec2.NewFromConfig(cfg)
for {
r, err := svc.DescribeInstances(ctx, input)
if err != nil {
return "", fmt.Errorf("failed to describe instance required for cluster name detection: %v", err)
}
// Look for the cluster name tag in the instance tags
for _, reservation := range r.Reservations {
for _, instance := range reservation.Instances {
if *instance.InstanceId == instanceId {
for _, tag := range instance.Tags {
if strings.HasSuffix(*tag.Key, clusterNameTag) {
return *tag.Value, nil
}
}
}
}
}
if r.NextToken == nil {
break
}
input.NextToken = r.NextToken
}
return "", nil
}