passing in credentials helper
parent
963373bfc7
commit
a11c1788b7
|
@ -5,6 +5,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/keel-hq/keel/extension/credentialshelper"
|
||||
"github.com/keel-hq/keel/provider"
|
||||
"github.com/keel-hq/keel/secrets"
|
||||
"github.com/keel-hq/keel/types"
|
||||
|
@ -32,6 +33,8 @@ type DefaultManager struct {
|
|||
|
||||
secretsGetter secrets.Getter
|
||||
|
||||
credentialsHelper credentialshelper.CredentialsHelper
|
||||
|
||||
// repository watcher
|
||||
watcher Watcher
|
||||
|
||||
|
@ -45,13 +48,14 @@ type DefaultManager struct {
|
|||
}
|
||||
|
||||
// NewPollManager - new default poller
|
||||
func NewPollManager(providers provider.Providers, watcher Watcher, secretsGetter secrets.Getter) *DefaultManager {
|
||||
func NewPollManager(providers provider.Providers, watcher Watcher, secretsGetter secrets.Getter, credentialsHelper credentialshelper.CredentialsHelper) *DefaultManager {
|
||||
return &DefaultManager{
|
||||
providers: providers,
|
||||
secretsGetter: secretsGetter,
|
||||
watcher: watcher,
|
||||
mu: &sync.Mutex{},
|
||||
scanTick: 55,
|
||||
providers: providers,
|
||||
secretsGetter: secretsGetter,
|
||||
credentialsHelper: credentialsHelper,
|
||||
watcher: watcher,
|
||||
mu: &sync.Mutex{},
|
||||
scanTick: 55,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,9 +108,11 @@ func (s *DefaultManager) scan(ctx context.Context) error {
|
|||
|
||||
tracked++
|
||||
|
||||
var imageCreds *types.Credentials
|
||||
|
||||
// anonymous credentials
|
||||
creds := &types.Credentials{}
|
||||
imageCreds, err := s.secretsGetter.Get(trackedImage)
|
||||
imageCreds, err = s.secretsGetter.Get(trackedImage)
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
"error": err,
|
||||
|
@ -117,6 +123,21 @@ func (s *DefaultManager) scan(ctx context.Context) error {
|
|||
creds = imageCreds
|
||||
}
|
||||
|
||||
// TODO: refactor to either recreate it every 10 hours (12 hours expiration) or better to retrieve creds
|
||||
// just before quering the registry
|
||||
if imageCreds.Username == "" && imageCreds.Password == "" {
|
||||
registryCreds, err := s.credentialsHelper.GetCredentials(trackedImage.Image.Registry())
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
"error": err,
|
||||
"registry": trackedImage.Image.Registry(),
|
||||
"image": trackedImage.Image.Remote(),
|
||||
}).Error("trigger.poll.manager: failed to get registry credentials")
|
||||
} else {
|
||||
creds = registryCreds
|
||||
}
|
||||
}
|
||||
|
||||
err = s.watcher.Watch(trackedImage.Image.Remote(), trackedImage.PollSchedule, creds.Username, creds.Password)
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
|
|
Loading…
Reference in New Issue