Merge pull request #424 from sczizzo/gcr-polling

Support polling GCR
pull/435/head
Karolis 2019-08-01 15:31:49 +01:00 committed by GitHub
commit ed551df33a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 57 additions and 0 deletions

View File

@ -48,6 +48,7 @@ import (
// credentials helpers
_ "github.com/keel-hq/keel/extension/credentialshelper/aws"
_ "github.com/keel-hq/keel/extension/credentialshelper/gcr"
secretsCredentialsHelper "github.com/keel-hq/keel/extension/credentialshelper/secrets"
// bots

View File

@ -0,0 +1,56 @@
package gcr
import (
"fmt"
"io/ioutil"
"os"
"github.com/keel-hq/keel/extension/credentialshelper"
"github.com/keel-hq/keel/types"
)
func init() {
credentialshelper.RegisterCredentialsHelper("gcr", New())
}
type CredentialsHelper struct {
enabled bool
credentials string
}
func New() *CredentialsHelper {
ch := &CredentialsHelper{}
credentialsFile, ok := os.LookupEnv("GOOGLE_APPLICATION_CREDENTIALS")
if !ok {
return ch
}
credentials, err := ioutil.ReadFile(credentialsFile)
if err != nil {
return ch
}
ch.enabled = true
ch.credentials = string(credentials)
return ch
}
func (h *CredentialsHelper) IsEnabled() bool {
return h.enabled
}
func (h *CredentialsHelper) GetCredentials(image *types.TrackedImage) (*types.Credentials, error) {
if !h.enabled {
return nil, fmt.Errorf("not initialised")
}
if image.Image.Registry() != "gcr.io" {
return nil, nil
}
return &types.Credentials{
Username: "_json_key",
Password: h.credentials,
}, nil
}