util/awsservice/eks.go (37 lines of code) (raw):

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT package awsservice import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" ) type EKSInstance struct { InstanceName *string } type EKSClusterType struct { Type string } func GetEKSInstances(clusterName string) ([]EKSInstance, error) { describeEksInstancesOutput, err := describeEksInstances(clusterName) if err != nil { return []EKSInstance{}, err } var results []EKSInstance for _, instance := range describeEksInstancesOutput.Reservations[0].Instances { results = append(results, EKSInstance{ InstanceName: instance.PrivateDnsName, }) } return results, nil } func describeEksInstances(clusterName string) (*ec2.DescribeInstancesOutput, error) { return Ec2Client.DescribeInstances(ctx, &ec2.DescribeInstancesInput{ Filters: []types.Filter{ { Name: aws.String("tag:aws:eks:cluster-name"), Values: []string{ clusterName, }, }, }, }) }