using tracked image type

feature/ecr_registry_auth
Karolis Rusenas 2018-04-28 22:00:52 +01:00
parent 500ad7c3da
commit 7fa199e29b
2 changed files with 19 additions and 4 deletions

View File

@ -37,12 +37,22 @@ type CredentialsHelper struct {
// New creates a new instance of aws credentials helper
func New() *CredentialsHelper {
ch := &CredentialsHelper{}
if os.Getenv("AWS_ACCESS_KEY_ID") != "" && os.Getenv("AWS_ACCESS_KEY") != "" && os.Getenv("AWS_REGION") != "" {
region := os.Getenv("AWS_REGION")
svc := ecr.New(session.New(), &aws.Config{
Region: aws.String(region),
})
_, err := svc.ListImages(&ecr.ListImagesInput{})
if err == nil {
ch.enabled = true
log.Infof("extension.credentialshelper.aws: enabled")
ch.region = os.Getenv("AWS_REGION")
ch.region = region
}
// if os.Getenv("AWS_ACCESS_KEY_ID") != "" && os.Getenv("AWS_SECRET_ACCESS_KEY") != "" && os.Getenv("AWS_REGION") != "" {
// }
return ch
}
@ -52,7 +62,9 @@ func (h *CredentialsHelper) IsEnabled() bool {
}
// GetCredentials - finds credentials
func (h *CredentialsHelper) GetCredentials(registry string) (*types.Credentials, error) {
func (h *CredentialsHelper) GetCredentials(image *types.TrackedImage) (*types.Credentials, error) {
registry := image.Image.Registry()
if !strings.Contains(registry, "amazonaws.com") {
return nil, credentialshelper.ErrUnsupportedRegistry

View File

@ -5,6 +5,7 @@ import (
"testing"
"github.com/keel-hq/keel/registry"
"github.com/keel-hq/keel/types"
"github.com/keel-hq/keel/util/image"
)
@ -19,7 +20,9 @@ func TestAWS(t *testing.T) {
// image
imgRef, _ := image.Parse("528670773427.dkr.ecr.us-east-2.amazonaws.com/webhook-demo:master")
creds, err := ch.GetCredentials(imgRef.Registry())
creds, err := ch.GetCredentials(&types.TrackedImage{
Image: imgRef,
})
if err != nil {
t.Fatalf("cred helper got error: %s", err)
}