Documentation ¶
Index ¶
- Constants
- Variables
- type Agent
- func (a *Agent) Datacenter() (string, error)
- func (a *Agent) ForceLeave(node string) error
- func (a *Agent) InstallKey(key string) (*KeyringResponse, error)
- func (a *Agent) Join(addrs ...string) (int, error)
- func (a *Agent) ListKeys() (*KeyringResponse, error)
- func (a *Agent) Members() (*ServerMembers, error)
- func (a *Agent) NodeName() (string, error)
- func (a *Agent) Region() (string, error)
- func (a *Agent) RemoveKey(key string) (*KeyringResponse, error)
- func (a *Agent) Self() (*AgentSelf, error)
- func (a *Agent) Servers() ([]string, error)
- func (a *Agent) SetServers(addrs []string) error
- func (a *Agent) UseKey(key string) (*KeyringResponse, error)
- type AgentMember
- type AgentMembersNameSort
- type AgentSelf
- type AllocFS
- func (a *AllocFS) Cat(alloc *Allocation, path string, q *QueryOptions) (io.ReadCloser, error)
- func (a *AllocFS) List(alloc *Allocation, path string, q *QueryOptions) ([]*AllocFileInfo, *QueryMeta, error)
- func (a *AllocFS) Logs(alloc *Allocation, follow bool, task, logType, origin string, offset int64, ...) (<-chan *StreamFrame, error)
- func (a *AllocFS) ReadAt(alloc *Allocation, path string, offset int64, limit int64, q *QueryOptions) (io.ReadCloser, error)
- func (a *AllocFS) Stat(alloc *Allocation, path string, q *QueryOptions) (*AllocFileInfo, *QueryMeta, error)
- func (a *AllocFS) Stream(alloc *Allocation, path, origin string, offset int64, cancel <-chan struct{}, ...) (<-chan *StreamFrame, error)
- type AllocFileInfo
- type AllocIndexSort
- type AllocResourceUsage
- type Allocation
- type AllocationListStub
- type AllocationMetric
- type AllocationSort
- type Allocations
- func (a *Allocations) GC(alloc *Allocation, q *QueryOptions) error
- func (a *Allocations) Info(allocID string, q *QueryOptions) (*Allocation, *QueryMeta, error)
- func (a *Allocations) List(q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
- func (a *Allocations) PrefixList(prefix string) ([]*AllocationListStub, *QueryMeta, error)
- func (a *Allocations) Stats(alloc *Allocation, q *QueryOptions) (*AllocResourceUsage, error)
- type Client
- func (c *Client) Agent() *Agent
- func (c *Client) AllocFS() *AllocFS
- func (c *Client) Allocations() *Allocations
- func (c *Client) Evaluations() *Evaluations
- func (c *Client) Jobs() *Jobs
- func (c *Client) Nodes() *Nodes
- func (c *Client) Operator() *Operator
- func (c *Client) Raw() *Raw
- func (c *Client) Regions() *Regions
- func (c *Client) SetRegion(region string)
- func (c *Client) Status() *Status
- func (c *Client) System() *System
- type Config
- type Constraint
- type CpuStats
- type DesiredUpdates
- type DispatchPayloadConfig
- type EphemeralDisk
- type EvalIndexSort
- type Evaluation
- type Evaluations
- func (e *Evaluations) Allocations(evalID string, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
- func (e *Evaluations) Info(evalID string, q *QueryOptions) (*Evaluation, *QueryMeta, error)
- func (e *Evaluations) List(q *QueryOptions) ([]*Evaluation, *QueryMeta, error)
- func (e *Evaluations) PrefixList(prefix string) ([]*Evaluation, *QueryMeta, error)
- type FieldDiff
- type FrameReader
- type HostCPUStats
- type HostDiskStats
- type HostMemoryStats
- type HostStats
- type HttpBasicAuth
- type Job
- func (j *Job) AddDatacenter(dc string) *Job
- func (j *Job) AddPeriodicConfig(cfg *PeriodicConfig) *Job
- func (j *Job) AddTaskGroup(grp *TaskGroup) *Job
- func (j *Job) Canonicalize()
- func (j *Job) Constrain(c *Constraint) *Job
- func (j *Job) IsParameterized() bool
- func (j *Job) IsPeriodic() bool
- func (j *Job) SetMeta(key, val string) *Job
- type JobChildrenSummary
- type JobDiff
- type JobDispatchRequest
- type JobDispatchResponse
- type JobIDSort
- type JobListStub
- type JobPlanRequest
- type JobPlanResponse
- type JobRegisterRequest
- type JobSummary
- type JobValidateRequest
- type JobValidateResponse
- type Jobs
- func (j *Jobs) Allocations(jobID string, allAllocs bool, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
- func (j *Jobs) Deregister(jobID string, q *WriteOptions) (string, *WriteMeta, error)
- func (j *Jobs) Dispatch(jobID string, meta map[string]string, payload []byte, q *WriteOptions) (*JobDispatchResponse, *WriteMeta, error)
- func (j *Jobs) EnforceRegister(job *Job, modifyIndex uint64, q *WriteOptions) (string, *WriteMeta, error)
- func (j *Jobs) Evaluations(jobID string, q *QueryOptions) ([]*Evaluation, *QueryMeta, error)
- func (j *Jobs) ForceEvaluate(jobID string, q *WriteOptions) (string, *WriteMeta, error)
- func (j *Jobs) Info(jobID string, q *QueryOptions) (*Job, *QueryMeta, error)
- func (j *Jobs) List(q *QueryOptions) ([]*JobListStub, *QueryMeta, error)
- func (j *Jobs) PeriodicForce(jobID string, q *WriteOptions) (string, *WriteMeta, error)
- func (j *Jobs) Plan(job *Job, diff bool, q *WriteOptions) (*JobPlanResponse, *WriteMeta, error)
- func (j *Jobs) PrefixList(prefix string) ([]*JobListStub, *QueryMeta, error)
- func (j *Jobs) Register(job *Job, q *WriteOptions) (string, *WriteMeta, error)
- func (j *Jobs) Summary(jobID string, q *QueryOptions) (*JobSummary, *QueryMeta, error)
- func (j *Jobs) Validate(job *Job, q *WriteOptions) (*JobValidateResponse, *WriteMeta, error)
- type KeyringRequest
- type KeyringResponse
- type LogConfig
- type MemoryStats
- type NetworkResource
- type Node
- type NodeIndexSort
- type NodeListStub
- type Nodes
- func (n *Nodes) Allocations(nodeID string, q *QueryOptions) ([]*Allocation, *QueryMeta, error)
- func (n *Nodes) ForceEvaluate(nodeID string, q *WriteOptions) (string, *WriteMeta, error)
- func (n *Nodes) GC(nodeID string, q *QueryOptions) error
- func (n *Nodes) Info(nodeID string, q *QueryOptions) (*Node, *QueryMeta, error)
- func (n *Nodes) List(q *QueryOptions) ([]*NodeListStub, *QueryMeta, error)
- func (n *Nodes) PrefixList(prefix string) ([]*NodeListStub, *QueryMeta, error)
- func (n *Nodes) Stats(nodeID string, q *QueryOptions) (*HostStats, error)
- func (n *Nodes) ToggleDrain(nodeID string, drain bool, q *WriteOptions) (*WriteMeta, error)
- type ObjectDiff
- type Operator
- type ParameterizedJobConfig
- type PeriodicConfig
- type PlanAnnotations
- type Port
- type QueryMeta
- type QueryOptions
- type RaftConfiguration
- type RaftServer
- type Raw
- func (raw *Raw) Delete(endpoint string, out interface{}, q *WriteOptions) (*WriteMeta, error)
- func (raw *Raw) Query(endpoint string, out interface{}, q *QueryOptions) (*QueryMeta, error)
- func (raw *Raw) Response(endpoint string, q *QueryOptions) (io.ReadCloser, error)
- func (raw *Raw) Write(endpoint string, in, out interface{}, q *WriteOptions) (*WriteMeta, error)
- type Regions
- type RegisterJobRequest
- type ResourceUsage
- type Resources
- type RestartPolicy
- type ServerMembers
- type Service
- type ServiceCheck
- type Status
- type StreamFrame
- type System
- type TLSConfig
- type Task
- type TaskArtifact
- type TaskDiff
- type TaskEvent
- type TaskGroup
- type TaskGroupDiff
- type TaskGroupSummary
- type TaskResourceUsage
- type TaskState
- type Template
- type UpdateStrategy
- type Vault
- type WriteMeta
- type WriteOptions
- type WriteRequest
Constants ¶
const ( // OriginStart and OriginEnd are the available parameters for the origin // argument when streaming a file. They respectively offset from the start // and end of a file. OriginStart = "start" OriginEnd = "end" )
const ( // JobTypeService indicates a long-running processes JobTypeService = "service" // JobTypeBatch indicates a short-lived process JobTypeBatch = "batch" // PeriodicSpecCron is used for a cron spec. PeriodicSpecCron = "cron" )
const ( TaskSetup = "Task Setup" TaskSetupFailure = "Setup Failure" TaskDriverFailure = "Driver Failure" TaskDriverMessage = "Driver" TaskReceived = "Received" TaskFailedValidation = "Failed Validation" TaskStarted = "Started" TaskTerminated = "Terminated" TaskKilling = "Killing" TaskKilled = "Killed" TaskRestarting = "Restarting" TaskNotRestarting = "Not Restarting" TaskDownloadingArtifacts = "Downloading Artifacts" TaskArtifactDownloadFailed = "Failed Artifact Download" TaskSiblingFailed = "Sibling Task Failed" TaskSignaling = "Signaling" TaskRestartSignal = "Restart Signaled" TaskLeaderDead = "Leader Task Dead" )
const ( // RegisterEnforceIndexErrPrefix is the prefix to use in errors caused by // enforcing the job modify index during registers. RegisterEnforceIndexErrPrefix = "Enforcing job modify index" )
Variables ¶
var ( // NodeDownErr marks an operation as not able to complete since the node is // down. NodeDownErr = fmt.Errorf("node down") )
Functions ¶
This section is empty.
Types ¶
type Agent ¶
type Agent struct {
// contains filtered or unexported fields
}
Agent encapsulates an API client which talks to Nomad's agent endpoints for a specific node.
func (*Agent) Datacenter ¶
Datacenter is used to return the name of the datacenter which the agent is a member of.
func (*Agent) ForceLeave ¶
ForceLeave is used to eject an existing node from the cluster.
func (*Agent) InstallKey ¶ added in v0.5.0
func (a *Agent) InstallKey(key string) (*KeyringResponse, error)
InstallKey installs a key in the keyrings of all the serf members
func (*Agent) Join ¶
Join is used to instruct a server node to join another server via the gossip protocol. Multiple addresses may be specified. We attempt to join all of the hosts in the list. Returns the number of nodes successfully joined and any error. If one or more nodes have a successful result, no error is returned.
func (*Agent) ListKeys ¶ added in v0.5.0
func (a *Agent) ListKeys() (*KeyringResponse, error)
ListKeys returns the list of installed keys
func (*Agent) Members ¶
func (a *Agent) Members() (*ServerMembers, error)
Members is used to query all of the known server members
func (*Agent) RemoveKey ¶ added in v0.5.0
func (a *Agent) RemoveKey(key string) (*KeyringResponse, error)
RemoveKey removes a particular key from keyrings of serf members
func (*Agent) Self ¶
Self is used to query the /v1/agent/self endpoint and returns information specific to the running agent.
func (*Agent) SetServers ¶
SetServers is used to update the list of servers on a client node.
type AgentMember ¶
type AgentMember struct { Name string Addr string Port uint16 Tags map[string]string Status string ProtocolMin uint8 ProtocolMax uint8 ProtocolCur uint8 DelegateMin uint8 DelegateMax uint8 DelegateCur uint8 }
AgentMember represents a cluster member known to the agent
type AgentMembersNameSort ¶ added in v0.2.0
type AgentMembersNameSort []*AgentMember
AgentMembersNameSort implements sort.Interface for []*AgentMembersNameSort based on the Name, DC and Region
func (AgentMembersNameSort) Len ¶ added in v0.2.0
func (a AgentMembersNameSort) Len() int
func (AgentMembersNameSort) Less ¶ added in v0.2.0
func (a AgentMembersNameSort) Less(i, j int) bool
func (AgentMembersNameSort) Swap ¶ added in v0.2.0
func (a AgentMembersNameSort) Swap(i, j int)
type AgentSelf ¶ added in v0.5.5
type AgentSelf struct { Config map[string]interface{} `json:"config"` Member AgentMember `json:"member"` Stats map[string]map[string]string `json:"stats"` }
type AllocFS ¶ added in v0.3.0
type AllocFS struct {
// contains filtered or unexported fields
}
AllocFS is used to introspect an allocation directory on a Nomad client
func (*AllocFS) Cat ¶ added in v0.3.2
func (a *AllocFS) Cat(alloc *Allocation, path string, q *QueryOptions) (io.ReadCloser, error)
Cat is used to read contents of a file at the given path in an allocation directory
func (*AllocFS) List ¶ added in v0.3.0
func (a *AllocFS) List(alloc *Allocation, path string, q *QueryOptions) ([]*AllocFileInfo, *QueryMeta, error)
List is used to list the files at a given path of an allocation directory
func (*AllocFS) Logs ¶ added in v0.4.1
func (a *AllocFS) Logs(alloc *Allocation, follow bool, task, logType, origin string, offset int64, cancel <-chan struct{}, q *QueryOptions) (<-chan *StreamFrame, error)
Logs streams the content of a tasks logs blocking on EOF. The parameters are: * allocation: the allocation to stream from. * follow: Whether the logs should be followed. * task: the tasks name to stream logs for. * logType: Either "stdout" or "stderr" * origin: Either "start" or "end" and defines from where the offset is applied. * offset: The offset to start streaming data at. * cancel: A channel that when closed, streaming will end.
The return value is a channel that will emit StreamFrames as they are read.
func (*AllocFS) ReadAt ¶ added in v0.3.0
func (a *AllocFS) ReadAt(alloc *Allocation, path string, offset int64, limit int64, q *QueryOptions) (io.ReadCloser, error)
ReadAt is used to read bytes at a given offset until limit at the given path in an allocation directory. If limit is <= 0, there is no limit.
func (*AllocFS) Stat ¶ added in v0.3.0
func (a *AllocFS) Stat(alloc *Allocation, path string, q *QueryOptions) (*AllocFileInfo, *QueryMeta, error)
Stat is used to stat a file at a given path of an allocation directory
func (*AllocFS) Stream ¶ added in v0.4.1
func (a *AllocFS) Stream(alloc *Allocation, path, origin string, offset int64, cancel <-chan struct{}, q *QueryOptions) (<-chan *StreamFrame, error)
Stream streams the content of a file blocking on EOF. The parameters are: * path: path to file to stream. * offset: The offset to start streaming data at. * origin: Either "start" or "end" and defines from where the offset is applied. * cancel: A channel that when closed, streaming will end.
The return value is a channel that will emit StreamFrames as they are read.
type AllocFileInfo ¶ added in v0.3.0
AllocFileInfo holds information about a file inside the AllocDir
type AllocIndexSort ¶
type AllocIndexSort []*AllocationListStub
AllocIndexSort reverse sorts allocs by CreateIndex.
func (AllocIndexSort) Len ¶
func (a AllocIndexSort) Len() int
func (AllocIndexSort) Less ¶
func (a AllocIndexSort) Less(i, j int) bool
func (AllocIndexSort) Swap ¶
func (a AllocIndexSort) Swap(i, j int)
type AllocResourceUsage ¶ added in v0.4.0
type AllocResourceUsage struct { ResourceUsage *ResourceUsage Tasks map[string]*TaskResourceUsage Timestamp int64 }
AllocResourceUsage holds the aggregated task resource usage of the allocation.
type Allocation ¶
type Allocation struct { ID string EvalID string Name string NodeID string JobID string Job *Job TaskGroup string Resources *Resources TaskResources map[string]*Resources Services map[string]string Metrics *AllocationMetric DesiredStatus string DesiredDescription string ClientStatus string ClientDescription string TaskStates map[string]*TaskState PreviousAllocation string CreateIndex uint64 ModifyIndex uint64 AllocModifyIndex uint64 CreateTime int64 }
Allocation is used for serialization of allocations.
type AllocationListStub ¶
type AllocationListStub struct { ID string EvalID string Name string NodeID string JobID string TaskGroup string DesiredStatus string DesiredDescription string ClientStatus string ClientDescription string TaskStates map[string]*TaskState CreateIndex uint64 ModifyIndex uint64 CreateTime int64 }
AllocationListStub is used to return a subset of an allocation during list operations.
type AllocationMetric ¶
type AllocationMetric struct { NodesEvaluated int NodesFiltered int NodesAvailable map[string]int ClassFiltered map[string]int ConstraintFiltered map[string]int NodesExhausted int ClassExhausted map[string]int DimensionExhausted map[string]int Scores map[string]float64 AllocationTime time.Duration CoalescedFailures int }
AllocationMetric is used to deserialize allocation metrics.
type AllocationSort ¶ added in v0.2.0
type AllocationSort []*Allocation
AllocationSort reverse sorts allocs by CreateIndex.
func (AllocationSort) Len ¶ added in v0.2.0
func (a AllocationSort) Len() int
func (AllocationSort) Less ¶ added in v0.2.0
func (a AllocationSort) Less(i, j int) bool
func (AllocationSort) Swap ¶ added in v0.2.0
func (a AllocationSort) Swap(i, j int)
type Allocations ¶
type Allocations struct {
// contains filtered or unexported fields
}
Allocations is used to query the alloc-related endpoints.
func (*Allocations) GC ¶ added in v0.5.3
func (a *Allocations) GC(alloc *Allocation, q *QueryOptions) error
func (*Allocations) Info ¶
func (a *Allocations) Info(allocID string, q *QueryOptions) (*Allocation, *QueryMeta, error)
Info is used to retrieve a single allocation.
func (*Allocations) List ¶
func (a *Allocations) List(q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
List returns a list of all of the allocations.
func (*Allocations) PrefixList ¶ added in v0.3.0
func (a *Allocations) PrefixList(prefix string) ([]*AllocationListStub, *QueryMeta, error)
func (*Allocations) Stats ¶ added in v0.4.0
func (a *Allocations) Stats(alloc *Allocation, q *QueryOptions) (*AllocResourceUsage, error)
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client provides a client to the Nomad API
func (*Client) Agent ¶
Agent returns a new agent which can be used to query the agent-specific endpoints.
func (*Client) Allocations ¶
func (c *Client) Allocations() *Allocations
Allocations returns a handle on the allocs endpoints.
func (*Client) Evaluations ¶
func (c *Client) Evaluations() *Evaluations
Evaluations returns a new handle on the evaluations.
type Config ¶
type Config struct { // Address is the address of the Nomad agent Address string // Region to use. If not provided, the default agent region is used. Region string // HttpClient is the client to use. Default will be // used if not provided. HttpClient *http.Client // HttpAuth is the auth info to use for http access. HttpAuth *HttpBasicAuth // WaitTime limits how long a Watch will block. If not provided, // the agent default values will be used. WaitTime time.Duration // TLSConfig provides the various TLS related configurations for the http // client TLSConfig *TLSConfig }
Config is used to configure the creation of a client
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns a default configuration for the client
func (*Config) ConfigureTLS ¶ added in v0.5.0
ConfigureTLS applies a set of TLS configurations to the the HTTP client.
type Constraint ¶
Constraint is used to serialize a job placement constraint.
func NewConstraint ¶ added in v0.2.0
func NewConstraint(left, operand, right string) *Constraint
NewConstraint generates a new job placement constraint.
type CpuStats ¶ added in v0.4.0
type CpuStats struct { SystemMode float64 UserMode float64 TotalTicks float64 ThrottledPeriods uint64 ThrottledTime uint64 Percent float64 Measured []string }
CpuStats holds cpu usage related stats
type DesiredUpdates ¶ added in v0.4.0
type DispatchPayloadConfig ¶ added in v0.5.3
type DispatchPayloadConfig struct {
File string
}
DispatchPayloadConfig configures how a task gets its input from a job dispatch
type EphemeralDisk ¶ added in v0.5.0
EphemeralDisk is an ephemeral disk object
func DefaultEphemeralDisk ¶ added in v0.5.5
func DefaultEphemeralDisk() *EphemeralDisk
func (*EphemeralDisk) Canonicalize ¶ added in v0.5.5
func (e *EphemeralDisk) Canonicalize()
type EvalIndexSort ¶
type EvalIndexSort []*Evaluation
EvalIndexSort is a wrapper to sort evaluations by CreateIndex. We reverse the test so that we get the highest index first.
func (EvalIndexSort) Len ¶
func (e EvalIndexSort) Len() int
func (EvalIndexSort) Less ¶
func (e EvalIndexSort) Less(i, j int) bool
func (EvalIndexSort) Swap ¶
func (e EvalIndexSort) Swap(i, j int)
type Evaluation ¶
type Evaluation struct { ID string Priority int Type string TriggeredBy string JobID string JobModifyIndex uint64 NodeID string NodeModifyIndex uint64 Status string StatusDescription string Wait time.Duration NextEval string PreviousEval string BlockedEval string FailedTGAllocs map[string]*AllocationMetric ClassEligibility map[string]bool EscapedComputedClass bool AnnotatePlan bool QueuedAllocations map[string]int SnapshotIndex uint64 CreateIndex uint64 ModifyIndex uint64 }
Evaluation is used to serialize an evaluation.
type Evaluations ¶
type Evaluations struct {
// contains filtered or unexported fields
}
Evaluations is used to query the evaluation endpoints.
func (*Evaluations) Allocations ¶
func (e *Evaluations) Allocations(evalID string, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
Allocations is used to retrieve a set of allocations given an evaluation ID.
func (*Evaluations) Info ¶
func (e *Evaluations) Info(evalID string, q *QueryOptions) (*Evaluation, *QueryMeta, error)
Info is used to query a single evaluation by its ID.
func (*Evaluations) List ¶
func (e *Evaluations) List(q *QueryOptions) ([]*Evaluation, *QueryMeta, error)
List is used to dump all of the evaluations.
func (*Evaluations) PrefixList ¶ added in v0.3.0
func (e *Evaluations) PrefixList(prefix string) ([]*Evaluation, *QueryMeta, error)
type FrameReader ¶ added in v0.4.1
type FrameReader struct {
// contains filtered or unexported fields
}
FrameReader is used to convert a stream of frames into a read closer.
func NewFrameReader ¶ added in v0.4.1
func NewFrameReader(frames <-chan *StreamFrame, cancelCh chan struct{}) *FrameReader
NewFrameReader takes a channel of frames and returns a FrameReader which implements io.ReadCloser
func (*FrameReader) Close ¶ added in v0.4.1
func (f *FrameReader) Close() error
Close cancels the stream of frames
func (*FrameReader) Offset ¶ added in v0.4.1
func (f *FrameReader) Offset() int
Offset returns the offset into the stream.
func (*FrameReader) Read ¶ added in v0.4.1
func (f *FrameReader) Read(p []byte) (n int, err error)
Read reads the data of the incoming frames into the bytes buffer. Returns EOF when there are no more frames.
func (*FrameReader) SetUnblockTime ¶ added in v0.4.1
func (f *FrameReader) SetUnblockTime(d time.Duration)
SetUnblockTime sets the time to unblock and return zero bytes read. If the duration is unset or is zero or less, the read will block til data is read.
type HostCPUStats ¶ added in v0.4.0
type HostDiskStats ¶ added in v0.4.0
type HostMemoryStats ¶ added in v0.4.0
type HostStats ¶ added in v0.4.0
type HostStats struct { Memory *HostMemoryStats CPU []*HostCPUStats DiskStats []*HostDiskStats Uptime uint64 CPUTicksConsumed float64 }
HostStats represents resource usage stats of the host running a Nomad client
type HttpBasicAuth ¶ added in v0.4.1
type HttpBasicAuth struct { // Username to use for HTTP Basic Authentication Username string // Password to use for HTTP Basic Authentication Password string }
HttpBasicAuth is used to authenticate http client with HTTP Basic Authentication
type Job ¶
type Job struct { Region *string ID *string ParentID *string Name *string Type *string Priority *int AllAtOnce *bool `mapstructure:"all_at_once"` Datacenters []string Constraints []*Constraint TaskGroups []*TaskGroup Update *UpdateStrategy Periodic *PeriodicConfig ParameterizedJob *ParameterizedJobConfig Payload []byte Meta map[string]string VaultToken *string `mapstructure:"vault_token"` Status *string StatusDescription *string CreateIndex *uint64 ModifyIndex *uint64 JobModifyIndex *uint64 }
Job is used to serialize a job.
func MockPeriodicJob ¶ added in v0.5.5
func MockPeriodicJob() *Job
func NewBatchJob ¶
NewBatchJob creates and returns a new batch-style job for short-lived processes using the provided name and ID along with the relative job priority.
func NewServiceJob ¶
NewServiceJob creates and returns a new service-style job for long-lived processes using the provided name, ID, and relative job priority.
func (*Job) AddDatacenter ¶
AddDatacenter is used to add a datacenter to a job.
func (*Job) AddPeriodicConfig ¶ added in v0.3.0
func (j *Job) AddPeriodicConfig(cfg *PeriodicConfig) *Job
AddPeriodicConfig adds a periodic config to an existing job.
func (*Job) AddTaskGroup ¶
AddTaskGroup adds a task group to an existing job.
func (*Job) Canonicalize ¶ added in v0.5.5
func (j *Job) Canonicalize()
func (*Job) Constrain ¶
func (j *Job) Constrain(c *Constraint) *Job
Constrain is used to add a constraint to a job.
func (*Job) IsParameterized ¶ added in v0.5.5
IsParameterized returns whether a job is parameterized job.
func (*Job) IsPeriodic ¶ added in v0.5.5
IsPeriodic returns whether a job is periodic.
type JobChildrenSummary ¶ added in v0.5.3
JobChildrenSummary contains the summary of children job status
func (*JobChildrenSummary) Sum ¶ added in v0.5.3
func (jc *JobChildrenSummary) Sum() int
type JobDiff ¶ added in v0.4.0
type JobDiff struct { Type string ID string Fields []*FieldDiff Objects []*ObjectDiff TaskGroups []*TaskGroupDiff }
type JobDispatchRequest ¶ added in v0.5.3
type JobDispatchResponse ¶ added in v0.5.3
type JobListStub ¶
type JobListStub struct { ID string ParentID string Name string Type string Priority int Status string StatusDescription string JobSummary *JobSummary CreateIndex uint64 ModifyIndex uint64 JobModifyIndex uint64 }
JobListStub is used to return a subset of information about jobs during list operations.
type JobPlanRequest ¶ added in v0.4.0
type JobPlanRequest struct { Job *Job Diff bool WriteRequest }
type JobPlanResponse ¶ added in v0.4.0
type JobPlanResponse struct { JobModifyIndex uint64 CreatedEvals []*Evaluation Diff *JobDiff Annotations *PlanAnnotations FailedTGAllocs map[string]*AllocationMetric NextPeriodicLaunch time.Time }
type JobRegisterRequest ¶ added in v0.5.5
type JobRegisterRequest struct { Job *Job // If EnforceIndex is set then the job will only be registered if the passed // JobModifyIndex matches the current Jobs index. If the index is zero, the // register only occurs if the job is new. EnforceIndex bool JobModifyIndex uint64 WriteRequest }
JobUpdateRequest is used to update a job
type JobSummary ¶ added in v0.4.1
type JobSummary struct { JobID string Summary map[string]TaskGroupSummary Children *JobChildrenSummary // Raft Indexes CreateIndex uint64 ModifyIndex uint64 }
JobSummary summarizes the state of the allocations of a job
type JobValidateRequest ¶ added in v0.5.5
type JobValidateRequest struct { Job *Job WriteRequest }
JobValidateRequest is used to validate a job
type JobValidateResponse ¶ added in v0.5.5
type JobValidateResponse struct { // DriverConfigValidated indicates whether the agent validated the driver // config DriverConfigValidated bool // ValidationErrors is a list of validation errors ValidationErrors []string // Error is a string version of any error that may have occured Error string }
JobValidateResponse is the response from validate request
type Jobs ¶
type Jobs struct {
// contains filtered or unexported fields
}
Jobs is used to access the job-specific endpoints.
func (*Jobs) Allocations ¶
func (j *Jobs) Allocations(jobID string, allAllocs bool, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
Allocations is used to return the allocs for a given job ID.
func (*Jobs) Deregister ¶
Deregister is used to remove an existing job.
func (*Jobs) Dispatch ¶ added in v0.5.3
func (j *Jobs) Dispatch(jobID string, meta map[string]string, payload []byte, q *WriteOptions) (*JobDispatchResponse, *WriteMeta, error)
func (*Jobs) EnforceRegister ¶ added in v0.4.0
func (j *Jobs) EnforceRegister(job *Job, modifyIndex uint64, q *WriteOptions) (string, *WriteMeta, error)
EnforceRegister is used to register a job enforcing its job modify index.
func (*Jobs) Evaluations ¶
func (j *Jobs) Evaluations(jobID string, q *QueryOptions) ([]*Evaluation, *QueryMeta, error)
Evaluations is used to query the evaluations associated with the given job ID.
func (*Jobs) ForceEvaluate ¶
ForceEvaluate is used to force-evaluate an existing job.
func (*Jobs) Info ¶
Info is used to retrieve information about a particular job given its unique ID.
func (*Jobs) List ¶
func (j *Jobs) List(q *QueryOptions) ([]*JobListStub, *QueryMeta, error)
List is used to list all of the existing jobs.
func (*Jobs) PeriodicForce ¶ added in v0.3.0
PeriodicForce spawns a new instance of the periodic job and returns the eval ID
func (*Jobs) Plan ¶ added in v0.4.0
func (j *Jobs) Plan(job *Job, diff bool, q *WriteOptions) (*JobPlanResponse, *WriteMeta, error)
func (*Jobs) PrefixList ¶ added in v0.3.0
func (j *Jobs) PrefixList(prefix string) ([]*JobListStub, *QueryMeta, error)
PrefixList is used to list all existing jobs that match the prefix.
func (*Jobs) Register ¶
Register is used to register a new job. It returns the ID of the evaluation, along with any errors encountered.
func (*Jobs) Summary ¶ added in v0.4.1
func (j *Jobs) Summary(jobID string, q *QueryOptions) (*JobSummary, *QueryMeta, error)
func (*Jobs) Validate ¶ added in v0.5.5
func (j *Jobs) Validate(job *Job, q *WriteOptions) (*JobValidateResponse, *WriteMeta, error)
type KeyringRequest ¶ added in v0.5.0
type KeyringRequest struct {
Key string
}
KeyringRequest is request objects for serf key operations.
type KeyringResponse ¶ added in v0.5.0
KeyringResponse is a unified key response and can be used for install, remove, use, as well as listing key queries.
type LogConfig ¶ added in v0.3.0
type LogConfig struct { MaxFiles *int `mapstructure:"max_files"` MaxFileSizeMB *int `mapstructure:"max_file_size"` }
LogConfig provides configuration for log rotation
func DefaultLogConfig ¶ added in v0.5.5
func DefaultLogConfig() *LogConfig
func (*LogConfig) Canonicalize ¶ added in v0.5.5
func (l *LogConfig) Canonicalize()
type MemoryStats ¶ added in v0.4.0
type MemoryStats struct { RSS uint64 Cache uint64 Swap uint64 MaxUsage uint64 KernelUsage uint64 KernelMaxUsage uint64 Measured []string }
MemoryStats holds memory usage related stats
type NetworkResource ¶
type NetworkResource struct { Public bool CIDR string ReservedPorts []Port DynamicPorts []Port IP string MBits *int }
NetworkResource is used to describe required network resources of a given task.
func (*NetworkResource) Canonicalize ¶ added in v0.5.5
func (n *NetworkResource) Canonicalize()
type Node ¶
type Node struct { ID string Datacenter string Name string HTTPAddr string TLSEnabled bool Attributes map[string]string Resources *Resources Reserved *Resources Links map[string]string Meta map[string]string NodeClass string Drain bool Status string StatusDescription string StatusUpdatedAt int64 CreateIndex uint64 ModifyIndex uint64 }
Node is used to deserialize a node entry.
type NodeIndexSort ¶
type NodeIndexSort []*NodeListStub
NodeIndexSort reverse sorts nodes by CreateIndex
func (NodeIndexSort) Len ¶
func (n NodeIndexSort) Len() int
func (NodeIndexSort) Less ¶
func (n NodeIndexSort) Less(i, j int) bool
func (NodeIndexSort) Swap ¶
func (n NodeIndexSort) Swap(i, j int)
type NodeListStub ¶
type NodeListStub struct { ID string Datacenter string Name string NodeClass string Drain bool Status string StatusDescription string CreateIndex uint64 ModifyIndex uint64 }
NodeListStub is a subset of information returned during node list operations.
type Nodes ¶
type Nodes struct {
// contains filtered or unexported fields
}
Nodes is used to query node-related API endpoints
func (*Nodes) Allocations ¶
func (n *Nodes) Allocations(nodeID string, q *QueryOptions) ([]*Allocation, *QueryMeta, error)
Allocations is used to return the allocations associated with a node.
func (*Nodes) ForceEvaluate ¶
ForceEvaluate is used to force-evaluate an existing node.
func (*Nodes) List ¶
func (n *Nodes) List(q *QueryOptions) ([]*NodeListStub, *QueryMeta, error)
List is used to list out all of the nodes
func (*Nodes) PrefixList ¶ added in v0.3.0
func (n *Nodes) PrefixList(prefix string) ([]*NodeListStub, *QueryMeta, error)
func (*Nodes) Stats ¶ added in v0.4.0
func (n *Nodes) Stats(nodeID string, q *QueryOptions) (*HostStats, error)
func (*Nodes) ToggleDrain ¶
ToggleDrain is used to toggle drain mode on/off for a given node.
type ObjectDiff ¶ added in v0.4.0
type ObjectDiff struct { Type string Name string Fields []*FieldDiff Objects []*ObjectDiff }
type Operator ¶ added in v0.5.5
type Operator struct {
// contains filtered or unexported fields
}
Operator can be used to perform low-level operator tasks for Nomad.
func (*Operator) RaftGetConfiguration ¶ added in v0.5.5
func (op *Operator) RaftGetConfiguration(q *QueryOptions) (*RaftConfiguration, error)
RaftGetConfiguration is used to query the current Raft peer set.
func (*Operator) RaftRemovePeerByAddress ¶ added in v0.5.5
func (op *Operator) RaftRemovePeerByAddress(address string, q *WriteOptions) error
RaftRemovePeerByAddress is used to kick a stale peer (one that it in the Raft quorum but no longer known to Serf or the catalog) by address in the form of "IP:port".
type ParameterizedJobConfig ¶ added in v0.5.3
type ParameterizedJobConfig struct { Payload string MetaRequired []string `mapstructure:"meta_required"` MetaOptional []string `mapstructure:"meta_optional"` }
ParameterizedJobConfig is used to configure the parameterized job.
type PeriodicConfig ¶ added in v0.3.0
type PeriodicConfig struct { Enabled *bool Spec *string SpecType *string ProhibitOverlap *bool `mapstructure:"prohibit_overlap"` TimeZone *string `mapstructure:"time_zone"` }
PeriodicConfig is for serializing periodic config for a job.
func (*PeriodicConfig) Canonicalize ¶ added in v0.5.5
func (p *PeriodicConfig) Canonicalize()
func (*PeriodicConfig) GetLocation ¶ added in v0.5.5
func (p *PeriodicConfig) GetLocation() (*time.Location, error)
func (*PeriodicConfig) Next ¶ added in v0.5.5
func (p *PeriodicConfig) Next(fromTime time.Time) time.Time
Next returns the closest time instant matching the spec that is after the passed time. If no matching instance exists, the zero value of time.Time is returned. The `time.Location` of the returned value matches that of the passed time.
type PlanAnnotations ¶ added in v0.4.0
type PlanAnnotations struct {
DesiredTGUpdates map[string]*DesiredUpdates
}
type QueryMeta ¶
type QueryMeta struct { // LastIndex. This can be used as a WaitIndex to perform // a blocking query LastIndex uint64 // Time of last contact from the leader for the // server servicing the request LastContact time.Duration // Is there a known leader KnownLeader bool // How long did the request take RequestTime time.Duration }
QueryMeta is used to return meta data about a query
type QueryOptions ¶
type QueryOptions struct { // Providing a datacenter overwrites the region provided // by the Config Region string // AllowStale allows any Nomad server (non-leader) to service // a read. This allows for lower latency and higher throughput AllowStale bool // WaitIndex is used to enable a blocking query. Waits // until the timeout or the next index is reached WaitIndex uint64 // WaitTime is used to bound the duration of a wait. // Defaults to that of the Config, but can be overridden. WaitTime time.Duration // If set, used as prefix for resource list searches Prefix string // Set HTTP parameters on the query. Params map[string]string }
QueryOptions are used to parameterize a query
type RaftConfiguration ¶ added in v0.5.5
type RaftConfiguration struct { // Servers has the list of servers in the Raft configuration. Servers []*RaftServer // Index has the Raft index of this configuration. Index uint64 }
RaftConfigration is returned when querying for the current Raft configuration.
type RaftServer ¶ added in v0.5.5
type RaftServer struct { // ID is the unique ID for the server. These are currently the same // as the address, but they will be changed to a real GUID in a future // release of Nomad. ID string // Node is the node name of the server, as known by Nomad, or this // will be set to "(unknown)" otherwise. Node string // Address is the IP:port of the server, used for Raft communications. Address string // Leader is true if this server is the current cluster leader. Leader bool // Voter is true if this server has a vote in the cluster. This might // be false if the server is staging and still coming online, or if // it's a non-voting server, which will be added in a future release of // Nomad. Voter bool }
RaftServer has information about a server in the Raft configuration.
type Raw ¶
type Raw struct {
// contains filtered or unexported fields
}
Raw can be used to do raw queries against custom endpoints
func (*Raw) Delete ¶
func (raw *Raw) Delete(endpoint string, out interface{}, q *WriteOptions) (*WriteMeta, error)
Delete is used to do a DELETE request against an endpoint and serialize/deserialized using the standard Nomad conventions.
func (*Raw) Query ¶
func (raw *Raw) Query(endpoint string, out interface{}, q *QueryOptions) (*QueryMeta, error)
Query is used to do a GET request against an endpoint and deserialize the response into an interface using standard Nomad conventions.
func (*Raw) Response ¶ added in v0.5.0
func (raw *Raw) Response(endpoint string, q *QueryOptions) (io.ReadCloser, error)
Response is used to make a GET request against an endpoint and returns the response body
type Regions ¶ added in v0.2.1
type Regions struct {
// contains filtered or unexported fields
}
Regions is used to query the regions in the cluster.
type RegisterJobRequest ¶ added in v0.3.2
type RegisterJobRequest struct { Job *Job EnforceIndex bool `json:",omitempty"` JobModifyIndex uint64 `json:",omitempty"` }
RegisterJobRequest is used to serialize a job registration
type ResourceUsage ¶ added in v0.4.0
type ResourceUsage struct { MemoryStats *MemoryStats CpuStats *CpuStats }
ResourceUsage holds information related to cpu and memory stats
type Resources ¶
type Resources struct { CPU *int MemoryMB *int `mapstructure:"memory"` DiskMB *int `mapstructure:"disk"` IOPS *int Networks []*NetworkResource }
Resources encapsulates the required resources of a given task or task group.
func MinResources ¶ added in v0.5.5
func MinResources() *Resources
func (*Resources) Canonicalize ¶ added in v0.5.5
func (r *Resources) Canonicalize()
type RestartPolicy ¶ added in v0.2.0
type RestartPolicy struct { Interval *time.Duration Attempts *int Delay *time.Duration Mode *string }
RestartPolicy defines how the Nomad client restarts tasks in a taskgroup when they fail
func (*RestartPolicy) Merge ¶ added in v0.5.5
func (r *RestartPolicy) Merge(rp *RestartPolicy)
type ServerMembers ¶ added in v0.5.0
type ServerMembers struct { ServerName string ServerRegion string ServerDC string Members []*AgentMember }
type Service ¶ added in v0.2.0
type Service struct { Id string Name string Tags []string PortLabel string `mapstructure:"port"` Checks []ServiceCheck }
The Service model represents a Consul service definition
type ServiceCheck ¶ added in v0.2.0
type ServiceCheck struct { Id string Name string Type string Command string Args []string Path string Protocol string PortLabel string `mapstructure:"port"` Interval time.Duration Timeout time.Duration InitialStatus string `mapstructure:"initial_status"` }
The ServiceCheck data model represents the consul health check that Nomad registers for a Task
type Status ¶
type Status struct {
// contains filtered or unexported fields
}
Status is used to query the status-related endpoints.
type StreamFrame ¶ added in v0.4.1
type StreamFrame struct { Offset int64 `json:",omitempty"` Data []byte `json:",omitempty"` File string `json:",omitempty"` FileEvent string `json:",omitempty"` }
StreamFrame is used to frame data of a file when streaming
func (*StreamFrame) IsHeartbeat ¶ added in v0.4.1
func (s *StreamFrame) IsHeartbeat() bool
IsHeartbeat returns if the frame is a heartbeat frame
type System ¶ added in v0.3.0
type System struct {
// contains filtered or unexported fields
}
Status is used to query the status-related endpoints.
func (*System) GarbageCollect ¶ added in v0.3.0
type TLSConfig ¶ added in v0.5.0
type TLSConfig struct { // CACert is the path to a PEM-encoded CA cert file to use to verify the // Nomad server SSL certificate. CACert string // CAPath is the path to a directory of PEM-encoded CA cert files to verify // the Nomad server SSL certificate. CAPath string // ClientCert is the path to the certificate for Nomad communication ClientCert string // ClientKey is the path to the private key for Nomad communication ClientKey string // TLSServerName, if set, is used to set the SNI host when connecting via // TLS. TLSServerName string // Insecure enables or disables SSL verification Insecure bool }
TLSConfig contains the parameters needed to configure TLS on the HTTP client used to communicate with Nomad.
type Task ¶
type Task struct { Name string Driver string User string Config map[string]interface{} Constraints []*Constraint Env map[string]string Services []*Service Resources *Resources Meta map[string]string KillTimeout *time.Duration `mapstructure:"kill_timeout"` LogConfig *LogConfig `mapstructure:"logs"` Artifacts []*TaskArtifact Vault *Vault Templates []*Template DispatchPayload *DispatchPayloadConfig Leader bool }
Task is a single process in a task group.
func (*Task) Canonicalize ¶ added in v0.5.5
func (*Task) Constrain ¶
func (t *Task) Constrain(c *Constraint) *Task
Constraint adds a new constraints to a single task.
func (*Task) SetLogConfig ¶ added in v0.3.0
SetLogConfig sets a log config to a task
type TaskArtifact ¶ added in v0.3.1
type TaskArtifact struct { GetterSource *string `mapstructure:"source"` GetterOptions map[string]string `mapstructure:"options"` RelativeDest *string `mapstructure:"destination"` }
TaskArtifact is used to download artifacts before running a task.
func (*TaskArtifact) Canonicalize ¶ added in v0.5.5
func (a *TaskArtifact) Canonicalize()
type TaskDiff ¶ added in v0.4.0
type TaskDiff struct { Type string Name string Fields []*FieldDiff Objects []*ObjectDiff Annotations []string }
type TaskEvent ¶ added in v0.2.0
type TaskEvent struct { Type string Time int64 FailsTask bool RestartReason string SetupError string DriverError string DriverMessage string ExitCode int Signal int Message string KillReason string KillTimeout time.Duration KillError string StartDelay int64 DownloadError string ValidationError string DiskLimit int64 DiskSize int64 FailedSibling string VaultError string TaskSignalReason string TaskSignal string }
TaskEvent is an event that effects the state of a task and contains meta-data appropriate to the events type.
type TaskGroup ¶
type TaskGroup struct { Name *string Count *int Constraints []*Constraint Tasks []*Task RestartPolicy *RestartPolicy EphemeralDisk *EphemeralDisk Meta map[string]string }
TaskGroup is the unit of scheduling.
func NewTaskGroup ¶
NewTaskGroup creates a new TaskGroup.
func (*TaskGroup) Canonicalize ¶ added in v0.5.5
func (*TaskGroup) Constrain ¶
func (g *TaskGroup) Constrain(c *Constraint) *TaskGroup
Constrain is used to add a constraint to a task group.
func (*TaskGroup) RequireDisk ¶ added in v0.5.0
func (g *TaskGroup) RequireDisk(disk *EphemeralDisk) *TaskGroup
RequireDisk adds a ephemeral disk to the task group
type TaskGroupDiff ¶ added in v0.4.0
type TaskGroupSummary ¶ added in v0.4.1
type TaskGroupSummary struct { Queued int Complete int Failed int Running int Starting int Lost int }
TaskGroup summarizes the state of all the allocations of a particular TaskGroup
type TaskResourceUsage ¶ added in v0.4.0
type TaskResourceUsage struct { ResourceUsage *ResourceUsage Timestamp int64 Pids map[string]*ResourceUsage }
TaskResourceUsage holds aggregated resource usage of all processes in a Task and the resource usage of the individual pids
type TaskState ¶ added in v0.2.0
TaskState tracks the current state of a task and events that caused state transitions.
type Template ¶ added in v0.5.0
type Template struct { SourcePath *string `mapstructure:"source"` DestPath *string `mapstructure:"destination"` EmbeddedTmpl *string `mapstructure:"data"` ChangeMode *string `mapstructure:"change_mode"` ChangeSignal *string `mapstructure:"change_signal"` Splay *time.Duration `mapstructure:"splay"` Perms *string `mapstructure:"perms"` LeftDelim *string `mapstructure:"left_delimiter"` RightDelim *string `mapstructure:"right_delimiter"` }
func (*Template) Canonicalize ¶ added in v0.5.5
func (tmpl *Template) Canonicalize()
type UpdateStrategy ¶ added in v0.2.0
UpdateStrategy is for serializing update strategy for a job.
type Vault ¶ added in v0.5.0
type Vault struct { Policies []string Env *bool ChangeMode *string `mapstructure:"change_mode"` ChangeSignal *string `mapstructure:"change_signal"` }
func (*Vault) Canonicalize ¶ added in v0.5.5
func (v *Vault) Canonicalize()
type WriteMeta ¶
type WriteMeta struct { // LastIndex. This can be used as a WaitIndex to perform // a blocking query LastIndex uint64 // How long did the request take RequestTime time.Duration }
WriteMeta is used to return meta data about a write
type WriteOptions ¶
type WriteOptions struct { // Providing a datacenter overwrites the region provided // by the Config Region string }
WriteOptions are used to parameterize a write
type WriteRequest ¶ added in v0.5.5
type WriteRequest struct { // The target region for this write Region string }