Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PullStateCache ¶ added in v0.19.0
type PullStateCache struct {
// contains filtered or unexported fields
}
PullStateCache stores the outcome of the most recent pull attempts. It implements both PullStateWriter (written by the puller) and ReadinessStatus (read by the readiness handler — see pkg/handler). Safe for concurrent use.
func NewPullStateCache ¶ added in v0.19.0
func NewPullStateCache( currentDateTime libtime.CurrentDateTimeGetter, freshnessThreshold time.Duration, ) *PullStateCache
NewPullStateCache returns a PullStateCache with the given freshness threshold. Threshold is typically 3 × PullInterval. A zero threshold disables freshness checking (always fresh after first success). currentDateTime is the time source — pass libtime.NewCurrentDateTime() in production.
func (*PullStateCache) ReadinessStatus ¶ added in v0.19.0
func (c *PullStateCache) ReadinessStatus() (bool, string)
ReadinessStatus returns (true, "ok") when the cache is healthy, or (false, reason) when the pod should not receive traffic.
Rules (checked in order):
- lastSuccessAt is zero → "no successful pull yet"
- time since lastSuccessAt > freshnessThreshold → stale; include last error if any
- Otherwise → ready
func (*PullStateCache) RecordPull ¶ added in v0.19.0
func (c *PullStateCache) RecordPull(err error)
RecordPull records the outcome of one pull attempt at the current time. If err is nil the success timestamp is updated; otherwise only the error is stored.
type PullStateWriter ¶ added in v0.19.0
type PullStateWriter interface {
RecordPull(err error)
}
PullStateWriter is the write side of the pull outcome cache. The puller calls RecordPull after every pull attempt.
type Puller ¶
Puller periodically runs git pull on a repository.
func New ¶
func New( g git.Git, interval libtime.Duration, pullTimeout time.Duration, state PullStateWriter, ) Puller
New returns a Puller that calls g.Pull on the given interval. pullTimeout bounds each individual pull subprocess; 0 means no timeout. state receives the outcome of every pull attempt.