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 AllocDeploymentStatus
- 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) Deployments() *Deployments
- 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 Deployment
- type DeploymentAllocHealthRequest
- type DeploymentFailRequest
- type DeploymentIndexSort
- type DeploymentPauseRequest
- type DeploymentPromoteRequest
- type DeploymentSpecificRequest
- type DeploymentState
- type DeploymentUpdateResponse
- type Deployments
- func (d *Deployments) Allocations(deploymentID string, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
- func (d *Deployments) Fail(deploymentID string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
- func (d *Deployments) Info(deploymentID string, q *QueryOptions) (*Deployment, *QueryMeta, error)
- func (d *Deployments) List(q *QueryOptions) ([]*Deployment, *QueryMeta, error)
- func (d *Deployments) Pause(deploymentID string, pause bool, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
- func (d *Deployments) PrefixList(prefix string) ([]*Deployment, *QueryMeta, error)
- func (d *Deployments) PromoteAll(deploymentID string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
- func (d *Deployments) PromoteGroups(deploymentID string, groups []string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
- func (d *Deployments) SetAllocHealth(deploymentID string, healthy, unhealthy []string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
- 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 JobDeregisterResponse
- type JobDiff
- type JobDispatchRequest
- type JobDispatchResponse
- type JobIDSort
- type JobListStub
- type JobPlanRequest
- type JobPlanResponse
- type JobRegisterRequest
- type JobRegisterResponse
- type JobRevertRequest
- type JobStabilityRequest
- type JobStabilityResponse
- type JobSummary
- type JobValidateRequest
- type JobValidateResponse
- type JobVersionsResponse
- type Jobs
- func (j *Jobs) Allocations(jobID string, allAllocs bool, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
- func (j *Jobs) Deployments(jobID string, q *QueryOptions) ([]*Deployment, *QueryMeta, error)
- func (j *Jobs) Deregister(jobID string, purge bool, 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) (*JobRegisterResponse, *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) LatestDeployment(jobID string, q *QueryOptions) (*Deployment, *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) (*JobRegisterResponse, *WriteMeta, error)
- func (j *Jobs) Revert(jobID string, version uint64, enforcePriorVersion *uint64, q *WriteOptions) (*JobRegisterResponse, *WriteMeta, error)
- func (j *Jobs) Stable(jobID string, version uint64, stable bool, q *WriteOptions) (*JobStabilityResponse, *WriteMeta, error)
- func (j *Jobs) Summary(jobID string, q *QueryOptions) (*JobSummary, *QueryMeta, error)
- func (j *Jobs) Validate(job *Job, q *WriteOptions) (*JobValidateResponse, *WriteMeta, error)
- func (j *Jobs) Versions(jobID string, diffs bool, q *QueryOptions) ([]*Job, []*JobDiff, *QueryMeta, 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 SingleDeploymentResponse
- 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" TaskBuildingTaskDir = "Building Task Directory" )
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 AllocDeploymentStatus ¶
AllocDeploymentStatus captures the status of the allocation as part of the deployment. This can include things like if the allocation has been marked as heatlhy.
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 DeploymentID string DeploymentStatus *AllocDeploymentStatus 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 JobVersion uint64 TaskGroup string DesiredStatus string DesiredDescription string ClientStatus string ClientDescription string TaskStates map[string]*TaskState DeploymentStatus *AllocDeploymentStatus 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) Deployments ¶
func (c *Client) Deployments() *Deployments
Deployments returns a new handle on the deployments.
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 Deployment ¶
type Deployment struct { ID string JobID string JobVersion uint64 JobModifyIndex uint64 JobCreateIndex uint64 TaskGroups map[string]*DeploymentState Status string StatusDescription string CreateIndex uint64 ModifyIndex uint64 }
Deployment is used to serialize an deployment.
type DeploymentAllocHealthRequest ¶
type DeploymentAllocHealthRequest struct { DeploymentID string // Marks these allocations as healthy, allow further allocations // to be rolled. HealthyAllocationIDs []string // Any unhealthy allocations fail the deployment UnhealthyAllocationIDs []string WriteRequest }
DeploymentAllocHealthRequest is used to set the health of a set of allocations as part of a deployment.
type DeploymentFailRequest ¶
type DeploymentFailRequest struct { DeploymentID string WriteRequest }
DeploymentFailRequest is used to fail a particular deployment
type DeploymentIndexSort ¶
type DeploymentIndexSort []*Deployment
DeploymentIndexSort is a wrapper to sort deployments by CreateIndex. We reverse the test so that we get the highest index first.
func (DeploymentIndexSort) Len ¶
func (d DeploymentIndexSort) Len() int
func (DeploymentIndexSort) Less ¶
func (d DeploymentIndexSort) Less(i, j int) bool
func (DeploymentIndexSort) Swap ¶
func (d DeploymentIndexSort) Swap(i, j int)
type DeploymentPauseRequest ¶
type DeploymentPauseRequest struct { DeploymentID string // Pause sets the pause status Pause bool WriteRequest }
DeploymentPauseRequest is used to pause a deployment
type DeploymentPromoteRequest ¶
type DeploymentPromoteRequest struct { DeploymentID string // All is to promote all task groups All bool // Groups is used to set the promotion status per task group Groups []string WriteRequest }
DeploymentPromoteRequest is used to promote task groups in a deployment
type DeploymentSpecificRequest ¶
type DeploymentSpecificRequest struct { DeploymentID string QueryOptions }
DeploymentSpecificRequest is used to make a request specific to a particular deployment
type DeploymentState ¶
type DeploymentState struct { PlacedCanaries []string AutoRevert bool Promoted bool DesiredCanaries int DesiredTotal int PlacedAllocs int HealthyAllocs int UnhealthyAllocs int }
DeploymentState tracks the state of a deployment for a given task group.
type DeploymentUpdateResponse ¶
type DeploymentUpdateResponse struct { EvalID string EvalCreateIndex uint64 DeploymentModifyIndex uint64 RevertedJobVersion *uint64 WriteMeta }
DeploymentUpdateResponse is used to respond to a deployment change. The response will include the modify index of the deployment as well as details of any triggered evaluation.
type Deployments ¶
type Deployments struct {
// contains filtered or unexported fields
}
Deployments is used to query the deployments endpoints.
func (*Deployments) Allocations ¶
func (d *Deployments) Allocations(deploymentID string, q *QueryOptions) ([]*AllocationListStub, *QueryMeta, error)
Allocations is used to retrieve a set of allocations that are part of the deployment
func (*Deployments) Fail ¶
func (d *Deployments) Fail(deploymentID string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
Fail is used to fail the given deployment.
func (*Deployments) Info ¶
func (d *Deployments) Info(deploymentID string, q *QueryOptions) (*Deployment, *QueryMeta, error)
Info is used to query a single evaluation by its ID.
func (*Deployments) List ¶
func (d *Deployments) List(q *QueryOptions) ([]*Deployment, *QueryMeta, error)
List is used to dump all of the evaluations.
func (*Deployments) Pause ¶
func (d *Deployments) Pause(deploymentID string, pause bool, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
Pause is used to pause or unpause the given deployment.
func (*Deployments) PrefixList ¶
func (d *Deployments) PrefixList(prefix string) ([]*Deployment, *QueryMeta, error)
func (*Deployments) PromoteAll ¶
func (d *Deployments) PromoteAll(deploymentID string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
PromoteAll is used to promote all canaries in the given deployment
func (*Deployments) PromoteGroups ¶
func (d *Deployments) PromoteGroups(deploymentID string, groups []string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
PromoteGroups is used to promote canaries in the passed groups in the given deployment
func (*Deployments) SetAllocHealth ¶
func (d *Deployments) SetAllocHealth(deploymentID string, healthy, unhealthy []string, q *WriteOptions) (*DeploymentUpdateResponse, *WriteMeta, error)
SetAllocHealth is used to set allocation health for allocs that are part of the given deployment
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 DeploymentID string 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 { Stop *bool 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 Stable *bool Version *uint64 SubmitTime *int64 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 JobDeregisterResponse ¶
type JobDeregisterResponse struct { EvalID string EvalCreateIndex uint64 JobModifyIndex uint64 QueryMeta }
JobDeregisterResponse is used to respond to a job deregistration
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 Periodic bool ParameterizedJob bool Stop bool Status string StatusDescription string JobSummary *JobSummary CreateIndex uint64 ModifyIndex uint64 JobModifyIndex uint64 SubmitTime int64 }
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 // Warnings contains any warnings about the given job. These may include // deprecation warnings. Warnings string }
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 JobRegisterResponse ¶
type JobRegisterResponse struct { EvalID string EvalCreateIndex uint64 JobModifyIndex uint64 // Warnings contains any warnings about the given job. These may include // deprecation warnings. Warnings string QueryMeta }
JobRegisterResponse is used to respond to a job registration
type JobRevertRequest ¶
type JobRevertRequest struct { // JobID is the ID of the job being reverted JobID string // JobVersion the version to revert to. JobVersion uint64 // EnforcePriorVersion if set will enforce that the job is at the given // version before reverting. EnforcePriorVersion *uint64 WriteRequest }
JobRevertRequest is used to revert a job to a prior version.
type JobStabilityRequest ¶
type JobStabilityRequest struct { // Job to set the stability on JobID string JobVersion uint64 // Set the stability Stable bool WriteRequest }
JobStabilityRequest is used to marked a job as stable.
type JobStabilityResponse ¶
JobStabilityResponse is the response when marking a job as stable.
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 // Warnings contains any warnings about the given job. These may include // deprecation warnings. Warnings string }
JobValidateResponse is the response from validate request
type JobVersionsResponse ¶
JobVersionsResponse is used for a job get versions 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) Deployments ¶
func (j *Jobs) Deployments(jobID string, q *QueryOptions) ([]*Deployment, *QueryMeta, error)
Deployments is used to query the deployments associated with the given job ID.
func (*Jobs) Deregister ¶
Deregister is used to remove an existing job. If purge is set to true, the job is deregistered and purged from the system versus still being queryable and eventually GC'ed from the system. Most callers should not specify purge.
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) (*JobRegisterResponse, *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) LatestDeployment ¶
func (j *Jobs) LatestDeployment(jobID string, q *QueryOptions) (*Deployment, *QueryMeta, error)
LatestDeployment is used to query for the latest deployment associated with the given job 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 ¶
func (j *Jobs) Register(job *Job, q *WriteOptions) (*JobRegisterResponse, *WriteMeta, error)
Register is used to register a new job. It returns the ID of the evaluation, along with any errors encountered.
func (*Jobs) Revert ¶
func (j *Jobs) Revert(jobID string, version uint64, enforcePriorVersion *uint64, q *WriteOptions) (*JobRegisterResponse, *WriteMeta, error)
Revert is used to revert the given job to the passed version. If enforceVersion is set, the job is only reverted if the current version is at the passed version.
func (*Jobs) Stable ¶
func (j *Jobs) Stable(jobID string, version uint64, stable bool, q *WriteOptions) (*JobStabilityResponse, *WriteMeta, error)
Stable is used to mark a job version's stability.
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 { Device string CIDR string IP string MBits *int ReservedPorts []Port DynamicPorts []Port }
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"` AddressMode string `mapstructure:"address_mode"` 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"` TLSSkipVerify bool `mapstructure:"tls_skip_verify"` }
The ServiceCheck data model represents the consul health check that Nomad registers for a Task
type SingleDeploymentResponse ¶
type SingleDeploymentResponse struct { Deployment *Deployment QueryMeta }
SingleDeploymentResponse is used to respond with a single deployment
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"` GetterMode *string `mapstructure:"mode"` 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 Update *UpdateStrategy 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
type TaskState struct { State string Failed bool Restarts uint64 LastRestart time.Time StartedAt time.Time FinishedAt time.Time Events []*TaskEvent }
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"` Envvars *bool `mapstructure:"env"` }
func (*Template) Canonicalize ¶ added in v0.5.5
func (tmpl *Template) Canonicalize()
type UpdateStrategy ¶ added in v0.2.0
type UpdateStrategy struct { Stagger *time.Duration `mapstructure:"stagger"` MaxParallel *int `mapstructure:"max_parallel"` HealthCheck *string `mapstructure:"health_check"` MinHealthyTime *time.Duration `mapstructure:"min_healthy_time"` HealthyDeadline *time.Duration `mapstructure:"healthy_deadline"` AutoRevert *bool `mapstructure:"auto_revert"` Canary *int `mapstructure:"canary"` }
UpdateStrategy defines a task groups update strategy.
func (*UpdateStrategy) Canonicalize ¶
func (u *UpdateStrategy) Canonicalize()
func (*UpdateStrategy) Copy ¶
func (u *UpdateStrategy) Copy() *UpdateStrategy
func (*UpdateStrategy) Merge ¶
func (u *UpdateStrategy) Merge(o *UpdateStrategy)
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 }