Skip to content
This repository has been archived by the owner on Jan 8, 2024. It is now read-only.

Commit

Permalink
builtin/aws: use SharedConfig to load ~/.aws/config
Browse files Browse the repository at this point in the history
Fixes #604

This enables loading ~/.aws/config for assumed role auth.

We should talk to the Terraform about making aws-sdk-go-base less
Terraform-specific so we can share it, since they've solved a lot more
problems that we're going to run into: https://github.com/hashicorp/aws-sdk-go-base

But for now, this will work.
  • Loading branch information
mitchellh committed Oct 19, 2020
1 parent 99d4075 commit 8657ae5
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 13 deletions.
5 changes: 3 additions & 2 deletions builtin/aws/alb/releaser.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/aws/aws-sdk-go/service/route53"
Expand Down Expand Up @@ -39,7 +38,9 @@ func (r *Releaser) Release(
ui terminal.UI,
target *TargetGroup,
) (*Release, error) {
sess, err := session.NewSession(aws.NewConfig().WithRegion(target.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: target.Region,
})
if err != nil {
return nil, err
}
Expand Down
6 changes: 4 additions & 2 deletions builtin/aws/ami/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (
"fmt"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/hashicorp/waypoint-plugin-sdk/component"
"github.com/hashicorp/waypoint-plugin-sdk/docs"
"github.com/hashicorp/waypoint-plugin-sdk/terminal"
"github.com/hashicorp/waypoint/builtin/aws/utils"
)

// Builder uses `docker build` to build a Docker iamge.
Expand Down Expand Up @@ -86,7 +86,9 @@ func (b *Builder) Build(
ui terminal.UI,
src *component.Source,
) (*Image, error) {
sess, err := session.NewSession(aws.NewConfig().WithRegion(b.config.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: b.config.Region,
})
if err != nil {
return nil, err
}
Expand Down
9 changes: 6 additions & 3 deletions builtin/aws/ec2/platform.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"time"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/autoscaling"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/elbv2"
Expand Down Expand Up @@ -90,7 +89,9 @@ func (p *Platform) Deploy(

st.Update("Creating EC2 instances in ASG...")

sess, err := session.NewSession(aws.NewConfig().WithRegion(p.config.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: p.config.Region,
})
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -302,7 +303,9 @@ func (p *Platform) Destroy(
deployment *Deployment,
ui terminal.UI,
) error {
sess, err := session.NewSession(aws.NewConfig().WithRegion(p.config.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: p.config.Region,
})
if err != nil {
return err
}
Expand Down
6 changes: 4 additions & 2 deletions builtin/aws/ecr/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"os"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ecr"
"github.com/docker/distribution/reference"
"github.com/docker/docker/api/types"
Expand All @@ -17,6 +16,7 @@ import (
"github.com/hashicorp/waypoint-plugin-sdk/component"
"github.com/hashicorp/waypoint-plugin-sdk/docs"
"github.com/hashicorp/waypoint-plugin-sdk/terminal"
"github.com/hashicorp/waypoint/builtin/aws/utils"
"github.com/hashicorp/waypoint/builtin/docker"
"github.com/mattn/go-isatty"
)
Expand Down Expand Up @@ -54,7 +54,9 @@ func (r *Registry) Push(

cli.NegotiateAPIVersion(ctx)

sess, err := session.NewSession(aws.NewConfig().WithRegion(r.config.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: r.config.Region,
})
if err != nil {
return nil, err
}
Expand Down
9 changes: 7 additions & 2 deletions builtin/aws/ecs/platform.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"github.com/hashicorp/waypoint-plugin-sdk/component"
"github.com/hashicorp/waypoint-plugin-sdk/docs"
"github.com/hashicorp/waypoint-plugin-sdk/terminal"
"github.com/hashicorp/waypoint/builtin/aws/utils"
"github.com/hashicorp/waypoint/builtin/docker"
)

Expand Down Expand Up @@ -221,7 +222,9 @@ func (p *Platform) Deploy(

lf := &Lifecycle{
Init: func(s LifecycleStatus) error {
sess, err = session.NewSession(aws.NewConfig().WithRegion(p.config.Region))
sess, err = utils.GetSession(&utils.SessionConfig{
Region: p.config.Region,
})
if err != nil {
return err
}
Expand Down Expand Up @@ -1019,7 +1022,9 @@ func (p *Platform) Destroy(
) error {
log.Debug("removing deployment target group from load balancer")

sess, err := session.NewSession(aws.NewConfig().WithRegion(p.config.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: p.config.Region,
})
if err != nil {
return err
}
Expand Down
6 changes: 4 additions & 2 deletions builtin/aws/ecs/releaser.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import (
"fmt"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/waypoint-plugin-sdk/component"
"github.com/hashicorp/waypoint-plugin-sdk/docs"
"github.com/hashicorp/waypoint-plugin-sdk/terminal"
"github.com/hashicorp/waypoint/builtin/aws/utils"
)

// Releaser is the ReleaseManager implementation for Amazon ECS.
Expand All @@ -37,7 +37,9 @@ func (r *Releaser) Release(
ui terminal.UI,
target *Deployment,
) (*Release, error) {
sess, err := session.NewSession(aws.NewConfig().WithRegion(r.p.config.Region))
sess, err := utils.GetSession(&utils.SessionConfig{
Region: r.p.config.Region,
})
if err != nil {
return nil, err
}
Expand Down
19 changes: 19 additions & 0 deletions builtin/aws/utils/session.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package utils

import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
)

func GetSession(c *SessionConfig) (*session.Session, error) {
config := aws.NewConfig().WithRegion(c.Region)

return session.NewSessionWithOptions(session.Options{
Config: *config,
SharedConfigState: session.SharedConfigEnable,
})
}

type SessionConfig struct {
Region string
}

0 comments on commit 8657ae5

Please sign in to comment.