ecr cred helper, test
parent
69dbeef4e4
commit
393f885dee
|
@ -55,7 +55,7 @@ func NewPollManager(providers provider.Providers, watcher Watcher, secretsGetter
|
|||
credentialsHelper: credentialsHelper,
|
||||
watcher: watcher,
|
||||
mu: &sync.Mutex{},
|
||||
scanTick: 55,
|
||||
scanTick: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,6 @@ func (s *DefaultManager) Start(ctx context.Context) error {
|
|||
case <-ctx.Done():
|
||||
return nil
|
||||
case <-ticker.C:
|
||||
log.Debug("performing scan")
|
||||
err := s.scan(ctx)
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
|
@ -94,6 +93,7 @@ func (s *DefaultManager) Start(ctx context.Context) error {
|
|||
}
|
||||
|
||||
func (s *DefaultManager) scan(ctx context.Context) error {
|
||||
log.Info("performing scan")
|
||||
trackedImages, err := s.providers.TrackedImages()
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -2,15 +2,20 @@ package poll
|
|||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/keel-hq/keel/approvals"
|
||||
"github.com/keel-hq/keel/cache/memory"
|
||||
"github.com/keel-hq/keel/provider"
|
||||
"github.com/keel-hq/keel/registry"
|
||||
"github.com/keel-hq/keel/types"
|
||||
"github.com/keel-hq/keel/util/codecs"
|
||||
"github.com/keel-hq/keel/util/image"
|
||||
|
||||
"github.com/keel-hq/keel/extension/credentialshelper"
|
||||
_ "github.com/keel-hq/keel/extension/credentialshelper/aws"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@ -54,7 +59,7 @@ func TestCheckDeployment(t *testing.T) {
|
|||
|
||||
watcher := NewRepositoryWatcher(providers, frc)
|
||||
|
||||
pm := NewPollManager(providers, watcher, &FakeSecretsGetter{})
|
||||
pm := NewPollManager(providers, watcher, &FakeSecretsGetter{}, credentialshelper.New())
|
||||
|
||||
imageA := "gcr.io/v2-namespace/hello-world:1.1.1"
|
||||
imageB := "gcr.io/v2-namespace/greetings-world:1.1.1"
|
||||
|
@ -97,3 +102,65 @@ func TestCheckDeployment(t *testing.T) {
|
|||
t.Errorf("unexpected tag: %s", watcher.watched[keyB].imageRef.Tag())
|
||||
}
|
||||
}
|
||||
|
||||
// To run this test, set AWS env variables
|
||||
// export AWS_ACCESS_KEY_ID=AKIA.........
|
||||
// export AWS_ACCESS_KEY=3v..............
|
||||
// export AWS_REGION=us-east-2
|
||||
func TestCheckECRDeployment(t *testing.T) {
|
||||
|
||||
if os.Getenv("AWS_ACCESS_KEY_ID") == "" {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
// fake provider listening for events
|
||||
imgA, _ := image.Parse("528670773427.dkr.ecr.us-east-2.amazonaws.com/webhook-demo:master")
|
||||
fp := &fakeProvider{
|
||||
images: []*types.TrackedImage{
|
||||
&types.TrackedImage{
|
||||
Image: imgA,
|
||||
Trigger: types.TriggerTypePoll,
|
||||
Provider: "fp",
|
||||
PollSchedule: types.KeelPollDefaultSchedule,
|
||||
},
|
||||
},
|
||||
}
|
||||
mem := memory.NewMemoryCache(100*time.Millisecond, 100*time.Millisecond, 10*time.Millisecond)
|
||||
am := approvals.New(mem, codecs.DefaultSerializer())
|
||||
providers := provider.New([]provider.Provider{fp}, am)
|
||||
rc := registry.New()
|
||||
|
||||
watcher := NewRepositoryWatcher(providers, rc)
|
||||
|
||||
pm := NewPollManager(providers, watcher, &FakeSecretsGetter{}, credentialshelper.New())
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
pm.scan(ctx)
|
||||
|
||||
// 2 subscriptions should be added
|
||||
entries := watcher.cron.Entries()
|
||||
if len(entries) != 1 {
|
||||
t.Fatalf("unexpected list of cron entries: %d", len(entries))
|
||||
}
|
||||
|
||||
keyA := getImageIdentifier(imgA)
|
||||
|
||||
if len(watcher.watched) != 1 {
|
||||
t.Fatalf("expected to find 1 entry in watcher.watched map, found: %d", len(watcher.watched))
|
||||
}
|
||||
|
||||
if watcher.watched[keyA].digest != "sha256:7712aa425c17c2e413e5f4d64e2761eda009509d05d0e45a26e389d715aebe23" {
|
||||
t.Errorf("unexpected digest: %s", watcher.watched[keyA].digest)
|
||||
}
|
||||
if watcher.watched[keyA].schedule != types.KeelPollDefaultSchedule {
|
||||
t.Errorf("unexpected schedule: %s", watcher.watched[keyA].schedule)
|
||||
}
|
||||
if watcher.watched[keyA].imageRef.Remote() != imgA.Remote() {
|
||||
t.Errorf("unexpected remote remote: %s", watcher.watched[keyA].imageRef.Remote())
|
||||
}
|
||||
if watcher.watched[keyA].imageRef.Tag() != imgA.Tag() {
|
||||
t.Errorf("unexpected tag: %s", watcher.watched[keyA].imageRef.Tag())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue