func()

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
}