Documentation ¶
Index ¶
- Constants
- type Annotations
- type CAConfig
- type ClusterInfo
- type Config
- type ConfigReference
- type ConfigReferenceFileTarget
- type ConfigReferenceRuntimeTarget
- type ConfigSpec
- type ContainerSpec
- type ContainerStatus
- type CredentialSpec
- type DNSConfig
- type DiscreteGenericResource
- type DispatcherConfig
- type Driver
- type EncryptionConfig
- type Endpoint
- type EndpointSpec
- type EndpointVirtualIP
- type EngineDescription
- type ExternalCA
- type ExternalCAProtocol
- type GenericResource
- type GlobalJob
- type GlobalService
- type IPAMConfig
- type IPAMOptions
- type Info
- type InitRequest
- type JobStatus
- type JoinRequest
- type JoinTokens
- type LocalNodeState
- type ManagerStatus
- type Meta
- type NamedGenericResource
- type Network
- type NetworkAttachment
- type NetworkAttachmentConfig
- type NetworkAttachmentSpec
- type NetworkSpec
- type Node
- type NodeAvailability
- type NodeDescription
- type NodeRole
- type NodeSpec
- type NodeState
- type NodeStatus
- type OrchestrationConfig
- type Peer
- type Placement
- type PlacementPreference
- type Platform
- type PluginDescription
- type PortConfig
- type PortConfigProtocol
- type PortConfigPublishMode
- type PortStatus
- type Privileges
- type RaftConfig
- type Reachability
- type ReplicatedJob
- type ReplicatedService
- type ResolutionMode
- type ResourceRequirements
- type Resources
- type RestartPolicy
- type RestartPolicyCondition
- type RuntimeType
- type RuntimeURL
- type SELinuxContext
- type Secret
- type SecretReference
- type SecretReferenceFileTarget
- type SecretSpec
- type Service
- type ServiceMode
- type ServiceSpec
- type ServiceStatus
- type Spec
- type SpreadOver
- type Swarm
- type TLSInfo
- type Task
- type TaskDefaults
- type TaskSpec
- type TaskState
- type TaskStatus
- type UnlockRequest
- type UpdateConfig
- type UpdateFlags
- type UpdateState
- type UpdateStatus
- type Version
Constants ¶
const ( // RuntimeContainer is the container based runtime RuntimeContainer RuntimeType = "container" // RuntimePlugin is the plugin based runtime RuntimePlugin RuntimeType = "plugin" // RuntimeNetworkAttachment is the network attachment runtime RuntimeNetworkAttachment RuntimeType = "attachment" // RuntimeURLContainer is the proto url for the container type RuntimeURLContainer RuntimeURL = "types.docker.com/RuntimeContainer" // RuntimeURLPlugin is the proto url for the plugin type RuntimeURLPlugin RuntimeURL = "types.docker.com/RuntimePlugin" )
const ( // UpdateFailureActionPause PAUSE UpdateFailureActionPause = "pause" // UpdateFailureActionContinue CONTINUE UpdateFailureActionContinue = "continue" // UpdateFailureActionRollback ROLLBACK UpdateFailureActionRollback = "rollback" // UpdateOrderStopFirst STOP_FIRST UpdateOrderStopFirst = "stop-first" // UpdateOrderStartFirst START_FIRST UpdateOrderStartFirst = "start-first" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Annotations ¶
type Annotations struct { Name string `json:",omitempty"` Labels map[string]string `json:"Labels"` }
Annotations represents how to describe an object.
type CAConfig ¶
type CAConfig struct { // NodeCertExpiry is the duration certificates should be issued for NodeCertExpiry time.Duration `json:",omitempty"` // ExternalCAs is a list of CAs to which a manager node will make // certificate signing requests for node certificates. ExternalCAs []*ExternalCA `json:",omitempty"` // SigningCACert and SigningCAKey specify the desired signing root CA and // root CA key for the swarm. When inspecting the cluster, the key will // be redacted. SigningCACert string `json:",omitempty"` SigningCAKey string `json:",omitempty"` // If this value changes, and there is no specified signing cert and key, // then the swarm is forced to generate a new root certificate ane key. ForceRotate uint64 `json:",omitempty"` }
CAConfig represents CA configuration.
type ClusterInfo ¶
type ClusterInfo struct { ID string Meta Spec Spec TLSInfo TLSInfo RootRotationInProgress bool DefaultAddrPool []string SubnetSize uint32 DataPathPort uint32 }
ClusterInfo represents info about the cluster for outputting in "info" it contains the same information as "Swarm", but without the JoinTokens
type ConfigReference ¶
type ConfigReference struct { File *ConfigReferenceFileTarget `json:",omitempty"` Runtime *ConfigReferenceRuntimeTarget `json:",omitempty"` ConfigID string ConfigName string }
ConfigReference is a reference to a config in swarm
type ConfigReferenceFileTarget ¶
ConfigReferenceFileTarget is a file target in a config reference
type ConfigReferenceRuntimeTarget ¶
type ConfigReferenceRuntimeTarget struct{}
ConfigReferenceRuntimeTarget is a target for a config specifying that it isn't mounted into the container but instead has some other purpose.
type ConfigSpec ¶
type ConfigSpec struct { Annotations Data []byte `json:",omitempty"` // Templating controls whether and how to evaluate the config payload as // a template. If it is not set, no templating is used. Templating *Driver `json:",omitempty"` }
ConfigSpec represents a config specification from a config in swarm
type ContainerSpec ¶
type ContainerSpec struct { Image string `json:",omitempty"` Labels map[string]string `json:",omitempty"` Command []string `json:",omitempty"` Args []string `json:",omitempty"` Hostname string `json:",omitempty"` Env []string `json:",omitempty"` Dir string `json:",omitempty"` User string `json:",omitempty"` Groups []string `json:",omitempty"` Privileges *Privileges `json:",omitempty"` Init *bool `json:",omitempty"` StopSignal string `json:",omitempty"` TTY bool `json:",omitempty"` OpenStdin bool `json:",omitempty"` ReadOnly bool `json:",omitempty"` Mounts []mount.Mount `json:",omitempty"` StopGracePeriod *time.Duration `json:",omitempty"` Healthcheck *container.HealthConfig `json:",omitempty"` // The format of extra hosts on swarmkit is specified in: // http://man7.org/linux/man-pages/man5/hosts.5.html // IP_address canonical_hostname [aliases...] Hosts []string `json:",omitempty"` DNSConfig *DNSConfig `json:",omitempty"` Secrets []*SecretReference `json:",omitempty"` Configs []*ConfigReference `json:",omitempty"` Isolation container.Isolation `json:",omitempty"` PidsLimit int64 `json:",omitempty"` Sysctls map[string]string `json:",omitempty"` Capabilities []string `json:",omitempty"` }
ContainerSpec represents the spec of a container.
type ContainerStatus ¶
ContainerStatus represents the status of a container.
type CredentialSpec ¶
CredentialSpec for managed service account (Windows only)
type DNSConfig ¶
type DNSConfig struct { // Nameservers specifies the IP addresses of the name servers Nameservers []string `json:",omitempty"` // Search specifies the search list for host-name lookup Search []string `json:",omitempty"` // Options allows certain internal resolver variables to be modified Options []string `json:",omitempty"` }
DNSConfig specifies DNS related configurations in resolver configuration file (resolv.conf) Detailed documentation is available in: http://man7.org/linux/man-pages/man5/resolv.conf.5.html `nameserver`, `search`, `options` have been supported. TODO: `domain` is not supported yet.
type DiscreteGenericResource ¶
type DiscreteGenericResource struct { Kind string `json:",omitempty"` Value int64 `json:",omitempty"` }
DiscreteGenericResource represents a "user defined" resource which is defined as an integer "Kind" is used to describe the Kind of a resource (e.g: "GPU", "FPGA", "SSD", ...) Value is used to count the resource (SSD=5, HDD=3, ...)
type DispatcherConfig ¶
type DispatcherConfig struct { // HeartbeatPeriod defines how often agent should send heartbeats to // dispatcher. HeartbeatPeriod time.Duration `json:",omitempty"` }
DispatcherConfig represents dispatcher configuration.
type Driver ¶
type Driver struct { Name string `json:",omitempty"` Options map[string]string `json:",omitempty"` }
Driver represents a driver (network, logging, secrets backend).
type EncryptionConfig ¶
type EncryptionConfig struct { // AutoLockManagers specifies whether or not managers TLS keys and raft data // should be encrypted at rest in such a way that they must be unlocked // before the manager node starts up again. AutoLockManagers bool }
EncryptionConfig controls at-rest encryption of data and keys.
type Endpoint ¶
type Endpoint struct { Spec EndpointSpec `json:",omitempty"` Ports []PortConfig `json:",omitempty"` VirtualIPs []EndpointVirtualIP `json:",omitempty"` }
Endpoint represents an endpoint.
type EndpointSpec ¶
type EndpointSpec struct { Mode ResolutionMode `json:",omitempty"` Ports []PortConfig `json:",omitempty"` }
EndpointSpec represents the spec of an endpoint.
type EndpointVirtualIP ¶
type EndpointVirtualIP struct { NetworkID string `json:",omitempty"` Addr string `json:",omitempty"` }
EndpointVirtualIP represents the virtual ip of a port.
type EngineDescription ¶
type EngineDescription struct { EngineVersion string `json:",omitempty"` Labels map[string]string `json:",omitempty"` Plugins []PluginDescription `json:",omitempty"` }
EngineDescription represents the description of an engine.
type ExternalCA ¶
type ExternalCA struct { // Protocol is the protocol used by this external CA. Protocol ExternalCAProtocol // URL is the URL where the external CA can be reached. URL string // Options is a set of additional key/value pairs whose interpretation // depends on the specified CA type. Options map[string]string `json:",omitempty"` // CACert specifies which root CA is used by this external CA. This certificate must // be in PEM format. CACert string }
ExternalCA defines external CA to be used by the cluster.
type ExternalCAProtocol ¶
type ExternalCAProtocol string
ExternalCAProtocol represents type of external CA.
const ExternalCAProtocolCFSSL ExternalCAProtocol = "cfssl"
ExternalCAProtocolCFSSL CFSSL
type GenericResource ¶
type GenericResource struct { NamedResourceSpec *NamedGenericResource `json:",omitempty"` DiscreteResourceSpec *DiscreteGenericResource `json:",omitempty"` }
GenericResource represents a "user defined" resource which can be either an integer (e.g: SSD=3) or a string (e.g: SSD=sda1)
type GlobalJob ¶
type GlobalJob struct{}
GlobalJob is the type of a Service which executes a Task on every Node matching the Service's placement constraints. These tasks run to completion and then exit.
This type is deliberately empty.
type IPAMConfig ¶
type IPAMConfig struct { Subnet string `json:",omitempty"` Range string `json:",omitempty"` Gateway string `json:",omitempty"` }
IPAMConfig represents ipam configuration.
type IPAMOptions ¶
type IPAMOptions struct { Driver Driver `json:",omitempty"` Configs []IPAMConfig `json:",omitempty"` }
IPAMOptions represents ipam options.
type Info ¶
type Info struct { NodeID string NodeAddr string LocalNodeState LocalNodeState ControlAvailable bool Error string RemoteManagers []Peer Nodes int `json:",omitempty"` Managers int `json:",omitempty"` Cluster *ClusterInfo `json:",omitempty"` Warnings []string `json:",omitempty"` }
Info represents generic information about swarm.
type InitRequest ¶
type InitRequest struct { ListenAddr string AdvertiseAddr string DataPathAddr string DataPathPort uint32 ForceNewCluster bool Spec Spec AutoLockManagers bool Availability NodeAvailability DefaultAddrPool []string SubnetSize uint32 }
InitRequest is the request used to init a swarm.
type JobStatus ¶
type JobStatus struct { // JobIteration is a value increased each time a Job is executed, // successfully or otherwise. "Executed", in this case, means the job as a // whole has been started, not that an individual Task has been launched. A // job is "Executed" when its ServiceSpec is updated. JobIteration can be // used to disambiguate Tasks belonging to different executions of a job. // // Though JobIteration will increase with each subsequent execution, it may // not necessarily increase by 1, and so JobIteration should not be used to // keep track of the number of times a job has been executed. JobIteration Version // LastExecution is the time that the job was last executed, as observed by // Swarm manager. LastExecution time.Time `json:",omitempty"` }
JobStatus is the status of a job-type service.
type JoinRequest ¶
type JoinRequest struct { ListenAddr string AdvertiseAddr string DataPathAddr string RemoteAddrs []string JoinToken string // accept by secret Availability NodeAvailability }
JoinRequest is the request used to join a swarm.
type JoinTokens ¶
type JoinTokens struct { // Worker is the join token workers may use to join the swarm. Worker string // Manager is the join token managers may use to join the swarm. Manager string }
JoinTokens contains the tokens workers and managers need to join the swarm.
type LocalNodeState ¶
type LocalNodeState string
LocalNodeState represents the state of the local node.
const ( // LocalNodeStateInactive INACTIVE LocalNodeStateInactive LocalNodeState = "inactive" // LocalNodeStatePending PENDING LocalNodeStatePending LocalNodeState = "pending" // LocalNodeStateActive ACTIVE LocalNodeStateActive LocalNodeState = "active" // LocalNodeStateError ERROR LocalNodeStateError LocalNodeState = "error" // LocalNodeStateLocked LOCKED LocalNodeStateLocked LocalNodeState = "locked" )
type ManagerStatus ¶
type ManagerStatus struct { Leader bool `json:",omitempty"` Reachability Reachability `json:",omitempty"` Addr string `json:",omitempty"` }
ManagerStatus represents the status of a manager.
type Meta ¶
type Meta struct { Version Version `json:",omitempty"` CreatedAt time.Time `json:",omitempty"` UpdatedAt time.Time `json:",omitempty"` }
Meta is a base object inherited by most of the other once.
type NamedGenericResource ¶
type NamedGenericResource struct { Kind string `json:",omitempty"` Value string `json:",omitempty"` }
NamedGenericResource represents a "user defined" resource which is defined as a string. "Kind" is used to describe the Kind of a resource (e.g: "GPU", "FPGA", "SSD", ...) Value is used to identify the resource (GPU="UUID-1", FPGA="/dev/sdb5", ...)
type Network ¶
type Network struct { ID string Meta Spec NetworkSpec `json:",omitempty"` DriverState Driver `json:",omitempty"` IPAMOptions *IPAMOptions `json:",omitempty"` }
Network represents a network.
type NetworkAttachment ¶
type NetworkAttachment struct { Network Network `json:",omitempty"` Addresses []string `json:",omitempty"` }
NetworkAttachment represents a network attachment.
type NetworkAttachmentConfig ¶
type NetworkAttachmentConfig struct { Target string `json:",omitempty"` Aliases []string `json:",omitempty"` DriverOpts map[string]string `json:",omitempty"` }
NetworkAttachmentConfig represents the configuration of a network attachment.
type NetworkAttachmentSpec ¶
type NetworkAttachmentSpec struct {
ContainerID string
}
NetworkAttachmentSpec represents the runtime spec type for network attachment tasks
type NetworkSpec ¶
type NetworkSpec struct { Annotations DriverConfiguration *Driver `json:",omitempty"` IPv6Enabled bool `json:",omitempty"` Internal bool `json:",omitempty"` Attachable bool `json:",omitempty"` Ingress bool `json:",omitempty"` IPAMOptions *IPAMOptions `json:",omitempty"` ConfigFrom *network.ConfigReference `json:",omitempty"` Scope string `json:",omitempty"` }
NetworkSpec represents the spec of a network.
type Node ¶
type Node struct { ID string Meta // Spec defines the desired state of the node as specified by the user. // The system will honor this and will *never* modify it. Spec NodeSpec `json:",omitempty"` // Description encapsulates the properties of the Node as reported by the // agent. Description NodeDescription `json:",omitempty"` // Status provides the current status of the node, as seen by the manager. Status NodeStatus `json:",omitempty"` // ManagerStatus provides the current status of the node's manager // component, if the node is a manager. ManagerStatus *ManagerStatus `json:",omitempty"` }
Node represents a node.
type NodeAvailability ¶
type NodeAvailability string
NodeAvailability represents the availability of a node.
const ( // NodeAvailabilityActive ACTIVE NodeAvailabilityActive NodeAvailability = "active" // NodeAvailabilityPause PAUSE NodeAvailabilityPause NodeAvailability = "pause" // NodeAvailabilityDrain DRAIN NodeAvailabilityDrain NodeAvailability = "drain" )
type NodeDescription ¶
type NodeDescription struct { Hostname string `json:",omitempty"` Platform Platform `json:",omitempty"` Resources Resources `json:",omitempty"` Engine EngineDescription `json:",omitempty"` TLSInfo TLSInfo `json:",omitempty"` }
NodeDescription represents the description of a node.
type NodeSpec ¶
type NodeSpec struct { Annotations Role NodeRole `json:",omitempty"` Availability NodeAvailability `json:",omitempty"` }
NodeSpec represents the spec of a node.
type NodeStatus ¶
type NodeStatus struct { State NodeState `json:",omitempty"` Message string `json:",omitempty"` Addr string `json:",omitempty"` }
NodeStatus represents the status of a node.
type OrchestrationConfig ¶
type OrchestrationConfig struct { // TaskHistoryRetentionLimit is the number of historic tasks to keep per instance or // node. If negative, never remove completed or failed tasks. TaskHistoryRetentionLimit *int64 `json:",omitempty"` }
OrchestrationConfig represents orchestration configuration.
type Placement ¶
type Placement struct { Constraints []string `json:",omitempty"` Preferences []PlacementPreference `json:",omitempty"` MaxReplicas uint64 `json:",omitempty"` // Platforms stores all the platforms that the image can run on. // This field is used in the platform filter for scheduling. If empty, // then the platform filter is off, meaning there are no scheduling restrictions. Platforms []Platform `json:",omitempty"` }
Placement represents orchestration parameters.
type PlacementPreference ¶
type PlacementPreference struct {
Spread *SpreadOver
}
PlacementPreference provides a way to make the scheduler aware of factors such as topology.
type PluginDescription ¶
PluginDescription represents the description of an engine plugin.
type PortConfig ¶
type PortConfig struct { Name string `json:",omitempty"` Protocol PortConfigProtocol `json:",omitempty"` // TargetPort is the port inside the container TargetPort uint32 `json:",omitempty"` // PublishedPort is the port on the swarm hosts PublishedPort uint32 `json:",omitempty"` // PublishMode is the mode in which port is published PublishMode PortConfigPublishMode `json:",omitempty"` }
PortConfig represents the config of a port.
type PortConfigProtocol ¶
type PortConfigProtocol string
PortConfigProtocol represents the protocol of a port.
const ( // PortConfigProtocolTCP TCP PortConfigProtocolTCP PortConfigProtocol = "tcp" // PortConfigProtocolUDP UDP PortConfigProtocolUDP PortConfigProtocol = "udp" // PortConfigProtocolSCTP SCTP PortConfigProtocolSCTP PortConfigProtocol = "sctp" )
type PortConfigPublishMode ¶
type PortConfigPublishMode string
PortConfigPublishMode represents the mode in which the port is to be published.
const ( // PortConfigPublishModeIngress is used for ports published // for ingress load balancing using routing mesh. PortConfigPublishModeIngress PortConfigPublishMode = "ingress" // PortConfigPublishModeHost is used for ports published // for direct host level access on the host where the task is running. PortConfigPublishModeHost PortConfigPublishMode = "host" )
type PortStatus ¶
type PortStatus struct {
Ports []PortConfig `json:",omitempty"`
}
PortStatus represents the port status of a task's host ports whose service has published host ports
type Privileges ¶
type Privileges struct { CredentialSpec *CredentialSpec SELinuxContext *SELinuxContext }
Privileges defines the security options for the container.
type RaftConfig ¶
type RaftConfig struct { // SnapshotInterval is the number of log entries between snapshots. SnapshotInterval uint64 `json:",omitempty"` // KeepOldSnapshots is the number of snapshots to keep beyond the // current snapshot. KeepOldSnapshots *uint64 `json:",omitempty"` // LogEntriesForSlowFollowers is the number of log entries to keep // around to sync up slow followers after a snapshot is created. LogEntriesForSlowFollowers uint64 `json:",omitempty"` // ElectionTick is the number of ticks that a follower will wait for a message // from the leader before becoming a candidate and starting an election. // ElectionTick must be greater than HeartbeatTick. // // A tick currently defaults to one second, so these translate directly to // seconds currently, but this is NOT guaranteed. ElectionTick int // HeartbeatTick is the number of ticks between heartbeats. Every // HeartbeatTick ticks, the leader will send a heartbeat to the // followers. // // A tick currently defaults to one second, so these translate directly to // seconds currently, but this is NOT guaranteed. HeartbeatTick int }
RaftConfig represents raft configuration.
type Reachability ¶
type Reachability string
Reachability represents the reachability of a node.
const ( // ReachabilityUnknown UNKNOWN ReachabilityUnknown Reachability = "unknown" // ReachabilityUnreachable UNREACHABLE ReachabilityUnreachable Reachability = "unreachable" // ReachabilityReachable REACHABLE ReachabilityReachable Reachability = "reachable" )
type ReplicatedJob ¶
type ReplicatedJob struct { // MaxConcurrent indicates the maximum number of Tasks that should be // executing simultaneously for this job at any given time. There may be // fewer Tasks that MaxConcurrent executing simultaneously; for example, if // there are fewer than MaxConcurrent tasks needed to reach // TotalCompletions. // // If this field is empty, it will default to a max concurrency of 1. MaxConcurrent *uint64 `json:",omitempty"` // TotalCompletions is the total number of Tasks desired to run to // completion. // // If this field is empty, the value of MaxConcurrent will be used. TotalCompletions *uint64 `json:",omitempty"` }
ReplicatedJob is the a type of Service which executes a defined Tasks in parallel until the specified number of Tasks have succeeded.
type ReplicatedService ¶
type ReplicatedService struct {
Replicas *uint64 `json:",omitempty"`
}
ReplicatedService is a kind of ServiceMode.
type ResolutionMode ¶
type ResolutionMode string
ResolutionMode represents a resolution mode.
const ( // ResolutionModeVIP VIP ResolutionModeVIP ResolutionMode = "vip" // ResolutionModeDNSRR DNSRR ResolutionModeDNSRR ResolutionMode = "dnsrr" )
type ResourceRequirements ¶
type ResourceRequirements struct { Limits *Resources `json:",omitempty"` Reservations *Resources `json:",omitempty"` }
ResourceRequirements represents resources requirements.
type Resources ¶
type Resources struct { NanoCPUs int64 `json:",omitempty"` MemoryBytes int64 `json:",omitempty"` GenericResources []GenericResource `json:",omitempty"` }
Resources represents resources (CPU/Memory).
type RestartPolicy ¶
type RestartPolicy struct { Condition RestartPolicyCondition `json:",omitempty"` Delay *time.Duration `json:",omitempty"` MaxAttempts *uint64 `json:",omitempty"` Window *time.Duration `json:",omitempty"` }
RestartPolicy represents the restart policy.
type RestartPolicyCondition ¶
type RestartPolicyCondition string
RestartPolicyCondition represents when to restart.
const ( // RestartPolicyConditionNone NONE RestartPolicyConditionNone RestartPolicyCondition = "none" // RestartPolicyConditionOnFailure ON_FAILURE RestartPolicyConditionOnFailure RestartPolicyCondition = "on-failure" // RestartPolicyConditionAny ANY RestartPolicyConditionAny RestartPolicyCondition = "any" )
type SELinuxContext ¶
SELinuxContext contains the SELinux labels of the container.
type SecretReference ¶
type SecretReference struct { File *SecretReferenceFileTarget SecretID string SecretName string }
SecretReference is a reference to a secret in swarm
type SecretReferenceFileTarget ¶
SecretReferenceFileTarget is a file target in a secret reference
type SecretSpec ¶
type SecretSpec struct { Annotations Data []byte `json:",omitempty"` Driver *Driver `json:",omitempty"` // name of the secrets driver used to fetch the secret's value from an external secret store // Templating controls whether and how to evaluate the secret payload as // a template. If it is not set, no templating is used. Templating *Driver `json:",omitempty"` }
SecretSpec represents a secret specification from a secret in swarm
type Service ¶
type Service struct { ID string Meta Spec ServiceSpec `json:",omitempty"` PreviousSpec *ServiceSpec `json:",omitempty"` Endpoint Endpoint `json:",omitempty"` UpdateStatus *UpdateStatus `json:",omitempty"` // ServiceStatus is an optional, extra field indicating the number of // desired and running tasks. It is provided primarily as a shortcut to // calculating these values client-side, which otherwise would require // listing all tasks for a service, an operation that could be // computation and network expensive. ServiceStatus *ServiceStatus `json:",omitempty"` // JobStatus is the status of a Service which is in one of ReplicatedJob or // GlobalJob modes. It is absent on Replicated and Global services. JobStatus *JobStatus `json:",omitempty"` }
Service represents a service.
type ServiceMode ¶
type ServiceMode struct { Replicated *ReplicatedService `json:",omitempty"` Global *GlobalService `json:",omitempty"` ReplicatedJob *ReplicatedJob `json:",omitempty"` GlobalJob *GlobalJob `json:",omitempty"` }
ServiceMode represents the mode of a service.
type ServiceSpec ¶
type ServiceSpec struct { Annotations // TaskTemplate defines how the service should construct new tasks when // orchestrating this service. TaskTemplate TaskSpec `json:",omitempty"` Mode ServiceMode `json:",omitempty"` UpdateConfig *UpdateConfig `json:",omitempty"` RollbackConfig *UpdateConfig `json:",omitempty"` // Networks field in ServiceSpec is deprecated. The // same field in TaskSpec should be used instead. // This field will be removed in a future release. Networks []NetworkAttachmentConfig `json:",omitempty"` EndpointSpec *EndpointSpec `json:",omitempty"` }
ServiceSpec represents the spec of a service.
type ServiceStatus ¶
type ServiceStatus struct { // RunningTasks is the number of tasks for the service actually in the // Running state RunningTasks uint64 // DesiredTasks is the number of tasks desired to be running by the // service. For replicated services, this is the replica count. For global // services, this is computed by taking the number of tasks with desired // state of not-Shutdown. DesiredTasks uint64 // CompletedTasks is the number of tasks in the state Completed, if this // service is in ReplicatedJob or GlobalJob mode. This field must be // cross-referenced with the service type, because the default value of 0 // may mean that a service is not in a job mode, or it may mean that the // job has yet to complete any tasks. CompletedTasks uint64 }
ServiceStatus represents the number of running tasks in a service and the number of tasks desired to be running.
type Spec ¶
type Spec struct { Annotations Orchestration OrchestrationConfig `json:",omitempty"` Raft RaftConfig `json:",omitempty"` Dispatcher DispatcherConfig `json:",omitempty"` CAConfig CAConfig `json:",omitempty"` TaskDefaults TaskDefaults `json:",omitempty"` EncryptionConfig EncryptionConfig `json:",omitempty"` }
Spec represents the spec of a swarm.
type SpreadOver ¶
type SpreadOver struct { // label descriptor, such as engine.labels.az SpreadDescriptor string }
SpreadOver is a scheduling preference that instructs the scheduler to spread tasks evenly over groups of nodes identified by labels.
type TLSInfo ¶
type TLSInfo struct { // TrustRoot is the trusted CA root certificate in PEM format TrustRoot string `json:",omitempty"` // CertIssuer is the raw subject bytes of the issuer CertIssuerSubject []byte `json:",omitempty"` // CertIssuerPublicKey is the raw public key bytes of the issuer CertIssuerPublicKey []byte `json:",omitempty"` }
TLSInfo represents the TLS information about what CA certificate is trusted, and who the issuer for a TLS certificate is
type Task ¶
type Task struct { ID string Meta Annotations Spec TaskSpec `json:",omitempty"` ServiceID string `json:",omitempty"` Slot int `json:",omitempty"` NodeID string `json:",omitempty"` Status TaskStatus `json:",omitempty"` DesiredState TaskState `json:",omitempty"` NetworksAttachments []NetworkAttachment `json:",omitempty"` GenericResources []GenericResource `json:",omitempty"` // JobIteration is the JobIteration of the Service that this Task was // spawned from, if the Service is a ReplicatedJob or GlobalJob. This is // used to determine which Tasks belong to which run of the job. This field // is absent if the Service mode is Replicated or Global. JobIteration *Version `json:",omitempty"` }
Task represents a task.
type TaskDefaults ¶
type TaskDefaults struct { // LogDriver selects the log driver to use for tasks created in the // orchestrator if unspecified by a service. // // Updating this value will only have an affect on new tasks. Old tasks // will continue use their previously configured log driver until // recreated. LogDriver *Driver `json:",omitempty"` }
TaskDefaults parameterizes cluster-level task creation with default values.
type TaskSpec ¶
type TaskSpec struct { // ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually exclusive. // PluginSpec is only used when the `Runtime` field is set to `plugin` // NetworkAttachmentSpec is used if the `Runtime` field is set to // `attachment`. ContainerSpec *ContainerSpec `json:",omitempty"` PluginSpec *runtime.PluginSpec `json:",omitempty"` NetworkAttachmentSpec *NetworkAttachmentSpec `json:",omitempty"` Resources *ResourceRequirements `json:",omitempty"` RestartPolicy *RestartPolicy `json:",omitempty"` Placement *Placement `json:",omitempty"` Networks []NetworkAttachmentConfig `json:",omitempty"` // LogDriver specifies the LogDriver to use for tasks created from this // spec. If not present, the one on cluster default on swarm.Spec will be // used, finally falling back to the engine default if not specified. LogDriver *Driver `json:",omitempty"` // ForceUpdate is a counter that triggers an update even if no relevant // parameters have been changed. ForceUpdate uint64 Runtime RuntimeType `json:",omitempty"` }
TaskSpec represents the spec of a task.
type TaskState ¶
type TaskState string
TaskState represents the state of a task.
const ( // TaskStateNew NEW TaskStateNew TaskState = "new" // TaskStateAllocated ALLOCATED TaskStateAllocated TaskState = "allocated" // TaskStatePending PENDING TaskStatePending TaskState = "pending" // TaskStateAssigned ASSIGNED TaskStateAssigned TaskState = "assigned" // TaskStateAccepted ACCEPTED TaskStateAccepted TaskState = "accepted" // TaskStatePreparing PREPARING TaskStatePreparing TaskState = "preparing" // TaskStateReady READY TaskStateReady TaskState = "ready" // TaskStateStarting STARTING TaskStateStarting TaskState = "starting" // TaskStateRunning RUNNING TaskStateRunning TaskState = "running" // TaskStateComplete COMPLETE TaskStateComplete TaskState = "complete" // TaskStateShutdown SHUTDOWN TaskStateShutdown TaskState = "shutdown" // TaskStateFailed FAILED TaskStateFailed TaskState = "failed" // TaskStateRejected REJECTED TaskStateRejected TaskState = "rejected" // TaskStateRemove REMOVE TaskStateRemove TaskState = "remove" // TaskStateOrphaned ORPHANED TaskStateOrphaned TaskState = "orphaned" )
type TaskStatus ¶
type TaskStatus struct { Timestamp time.Time `json:",omitempty"` State TaskState `json:",omitempty"` Message string `json:",omitempty"` Err string `json:",omitempty"` ContainerStatus *ContainerStatus `json:",omitempty"` PortStatus PortStatus `json:",omitempty"` }
TaskStatus represents the status of a task.
type UnlockRequest ¶
type UnlockRequest struct { // UnlockKey is the unlock key in ASCII-armored format. UnlockKey string }
UnlockRequest is the request used to unlock a swarm.
type UpdateConfig ¶
type UpdateConfig struct { // Maximum number of tasks to be updated in one iteration. // 0 means unlimited parallelism. Parallelism uint64 // Amount of time between updates. Delay time.Duration `json:",omitempty"` // FailureAction is the action to take when an update failures. FailureAction string `json:",omitempty"` // Monitor indicates how long to monitor a task for failure after it is // created. If the task fails by ending up in one of the states // REJECTED, COMPLETED, or FAILED, within Monitor from its creation, // this counts as a failure. If it fails after Monitor, it does not // count as a failure. If Monitor is unspecified, a default value will // be used. Monitor time.Duration `json:",omitempty"` // MaxFailureRatio is the fraction of tasks that may fail during // an update before the failure action is invoked. Any task created by // the current update which ends up in one of the states REJECTED, // COMPLETED or FAILED within Monitor from its creation counts as a // failure. The number of failures is divided by the number of tasks // being updated, and if this fraction is greater than // MaxFailureRatio, the failure action is invoked. // // If the failure action is CONTINUE, there is no effect. // If the failure action is PAUSE, no more tasks will be updated until // another update is started. MaxFailureRatio float32 // Order indicates the order of operations when rolling out an updated // task. Either the old task is shut down before the new task is // started, or the new task is started before the old task is shut down. Order string }
UpdateConfig represents the update configuration.
type UpdateFlags ¶
type UpdateFlags struct { RotateWorkerToken bool RotateManagerToken bool RotateManagerUnlockKey bool }
UpdateFlags contains flags for SwarmUpdate.
type UpdateState ¶
type UpdateState string
UpdateState is the state of a service update.
const ( // UpdateStateUpdating is the updating state. UpdateStateUpdating UpdateState = "updating" // UpdateStatePaused is the paused state. UpdateStatePaused UpdateState = "paused" // UpdateStateCompleted is the completed state. UpdateStateCompleted UpdateState = "completed" // UpdateStateRollbackStarted is the state with a rollback in progress. UpdateStateRollbackStarted UpdateState = "rollback_started" // UpdateStateRollbackPaused is the state with a rollback in progress. UpdateStateRollbackPaused UpdateState = "rollback_paused" // UpdateStateRollbackCompleted is the state with a rollback in progress. UpdateStateRollbackCompleted UpdateState = "rollback_completed" )
type UpdateStatus ¶
type UpdateStatus struct { State UpdateState `json:",omitempty"` StartedAt *time.Time `json:",omitempty"` CompletedAt *time.Time `json:",omitempty"` Message string `json:",omitempty"` }
UpdateStatus reports the status of a service update.