func NewCloud()

in pkg/aws/cloud.go [40:67]


func NewCloud(cfg CloudConfig) (Cloud, error) {
	sess := session.Must(session.NewSession(aws.NewConfig()))
	//injectUserAgent(&sess.Handlers)

	metadata := services.NewEC2Metadata(sess)
	if len(cfg.Region) == 0 {
		region, err := metadata.Region()
		if err != nil {
			return nil, errors.Wrap(err, "failed to introspect region from EC2Metadata, specify --aws-region instead if EC2Metadata is unavailable")
		}
		cfg.Region = region
	}

	awsCfg := aws.NewConfig().WithRegion(cfg.Region).WithSTSRegionalEndpoint(endpoints.RegionalSTSEndpoint)
	sess = sess.Copy(awsCfg)

	instanceIdentityDocument, err := metadata.GetInstanceIdentityDocument()
	if err != nil {
		return nil, errors.Wrap(err, "failed to get instanceIdentityDocument from EC2Metadata")
	}
	ec2ServiceClient := ec2.New(sess)
	cfg.ClusterName = getClusterName(ec2ServiceClient, instanceIdentityDocument)

	return &defaultCloud{
		cfg:            cfg,
		cloudWatchlogs: services.NewCloudWatchLogs(sess),
	}, nil
}