keel/types/tracked_images.go

38 lines
1.1 KiB
Go
Raw Normal View History

package types
import (
2017-07-30 11:12:46 +00:00
"fmt"
2017-11-01 18:25:28 +00:00
"github.com/keel-hq/keel/util/image"
)
2017-08-08 20:47:29 +00:00
// Credentials - registry credentials
2017-07-28 21:55:02 +00:00
type Credentials struct {
Username, Password string
}
2017-08-08 20:47:29 +00:00
// TrackedImage - tracked image data+metadata
type TrackedImage struct {
2019-04-28 16:03:52 +00:00
Image *image.Reference `json:"image"`
Trigger TriggerType `json:"trigger"`
2019-05-02 21:46:01 +00:00
PollSchedule string `json:"pollSchedule"`
2019-04-28 16:03:52 +00:00
Provider string `json:"provider"`
Namespace string `json:"namespace"`
Secrets []string `json:"secrets"`
Meta map[string]string `json:"meta"` // metadata supplied by providers
2018-10-14 21:18:39 +00:00
// a list of pre-release tags, ie: 1.0.0-dev, 1.5.0-prod get translated into
// dev, prod
2018-11-14 20:59:07 +00:00
// combined semver tags
2019-04-28 16:03:52 +00:00
Tags []string `json:"tags"`
Policy Policy `json:"policy"`
}
type Policy interface {
ShouldUpdate(current, new string) (bool, error)
2019-04-28 16:03:52 +00:00
Name() string
}
2017-07-30 11:12:46 +00:00
func (i TrackedImage) String() string {
return fmt.Sprintf("namespace:%s,image:%s:%s,provider:%s,trigger:%s,sched:%s,secrets:%s", i.Namespace, i.Image.Repository(), i.Image.Tag(), i.Provider, i.Trigger, i.PollSchedule, i.Secrets)
2017-07-30 11:12:46 +00:00
}