Documentation ¶
Index ¶
Constants ¶
const (
// TTL to use with all state pushed to Registry
DefaultTTL = "30s"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Agent ¶
func (*Agent) Heartbeat ¶
func (a *Agent) Heartbeat(stop <-chan struct{})
Heartbeat updates the Registry periodically with an acknowledgement of the Jobs this Agent is expected to be running.
func (*Agent) MarshalJSON ¶ added in v0.2.0
type AgentReconciler ¶ added in v0.6.0
type AgentReconciler struct {
// contains filtered or unexported fields
}
func NewReconciler ¶ added in v0.6.0
func NewReconciler(reg registry.Registry, rStream pkg.EventStream) *AgentReconciler
func (*AgentReconciler) Purge ¶ added in v0.6.0
func (ar *AgentReconciler) Purge(a *Agent)
Purge attempts to unload all Units that have been loaded locally
func (*AgentReconciler) Reconcile ¶ added in v0.6.0
func (ar *AgentReconciler) Reconcile(a *Agent)
Reconcile drives the local Agent's state towards the desired state stored in the Registry.
func (*AgentReconciler) Run ¶ added in v0.6.0
func (ar *AgentReconciler) Run(a *Agent, stop <-chan struct{})
Run periodically attempts to reconcile the provided Agent until the stop channel is closed. Run will also reconcile in reaction to events on the AgentReconciler's rStream.
type AgentState ¶
type AgentState struct { MState *machine.MachineState Units map[string]*job.Unit }
func NewAgentState ¶ added in v0.7.0
func NewAgentState(ms *machine.MachineState) *AgentState
func (*AgentState) AbleToRun ¶ added in v0.7.0
func (as *AgentState) AbleToRun(j *job.Job) (bool, string)
AbleToRun determines if an Agent can run the provided Job based on the Agent's current state. A boolean indicating whether this is the case or not is returned. The following criteria is used:
- Agent must meet the Job's machine target requirement (if any)
- Agent must have all of the Job's required metadata (if any)
- Agent must have all required Peers of the Job scheduled locally (if any)
- Job must not conflict with any other Units scheduled to the agent
type UnitStatePublisher ¶ added in v0.6.0
type UnitStatePublisher struct {
// contains filtered or unexported fields
}
func NewUnitStatePublisher ¶ added in v0.6.0
func (*UnitStatePublisher) MarshalJSON ¶ added in v0.8.0
func (p *UnitStatePublisher) MarshalJSON() ([]byte, error)
func (*UnitStatePublisher) Purge ¶ added in v0.7.1
func (p *UnitStatePublisher) Purge()
Purge ensures that the UnitStates for all Units known in the UnitStatePublisher's cache are removed from the registry.
func (*UnitStatePublisher) Run ¶ added in v0.6.0
func (p *UnitStatePublisher) Run(beatchan <-chan *unit.UnitStateHeartbeat, stop <-chan struct{})
Run caches all of the heartbeat objects from the provided channel, publishing them to the Registry every 5s. Heartbeat objects are also published as they are received on the channel.