diff --git a/extension/credentialshelper/aws/aws.go b/extension/credentialshelper/aws/aws.go index 74443a0e..ff159267 100644 --- a/extension/credentialshelper/aws/aws.go +++ b/extension/credentialshelper/aws/aws.go @@ -45,9 +45,11 @@ type CredentialsHelper struct { // New creates a new instance of aws credentials helper func New() *CredentialsHelper { - ch := &CredentialsHelper{} - ch.enabled = true - ch.cache = NewCache(AWSCredentialsExpiry) + ch := &CredentialsHelper{ + enabled: true, + cache: NewCache(AWSCredentialsExpiry), + } + return ch } @@ -70,14 +72,14 @@ func (h *CredentialsHelper) GetCredentials(image *types.TrackedImage) (*types.Cr return nil, err } + // set region + sess := newAwsSession(region) + svc := ecr.New(sess) + cached, err := h.cache.Get(registry) if err == nil { return cached, nil } - // fetch region from registry instead of env - svc := ecr.New(session.New(), &aws.Config{ - Region: aws.String(region), - }) input := &ecr.GetAuthorizationTokenInput{} @@ -135,6 +137,14 @@ func (h *CredentialsHelper) GetCredentials(image *types.TrackedImage) (*types.Cr return nil, fmt.Errorf("not found") } +func newAwsSession(region string) *session.Session { + sess := session.Must(session.NewSession(&aws.Config{ + Region: aws.String(region), + })) + + return sess +} + func decodeBase64Secret(authSecret string) (username, password string, err error) { decoded, err := base64.StdEncoding.DecodeString(authSecret) if err != nil { diff --git a/extension/credentialshelper/aws/aws_test.go b/extension/credentialshelper/aws/aws_test.go index 91a17932..082e5bdc 100644 --- a/extension/credentialshelper/aws/aws_test.go +++ b/extension/credentialshelper/aws/aws_test.go @@ -1,7 +1,6 @@ package aws import ( - "os" "testing" "github.com/keel-hq/keel/registry" @@ -11,10 +10,6 @@ import ( func TestAWS(t *testing.T) { - if os.Getenv("AWS_ACCESS_KEY_ID") == "" { - t.Skip() - } - ch := New() // image @@ -48,10 +43,8 @@ func TestAWS(t *testing.T) { func TestCredentialsCaching(t *testing.T) { - if os.Getenv("AWS_ACCESS_KEY_ID") == "" { - t.Skip() - } ch := New() + imgRef, _ := image.Parse("528670773427.dkr.ecr.us-east-2.amazonaws.com/webhook-demo:master") for i := 0; i < 200; i++ { _, err := ch.GetCredentials(&types.TrackedImage{