moby: github.com/moby/moby/api/types/swarm Index | Files

package swarm

import "github.com/moby/moby/api/types/swarm"

Index

Package Files

common.go config.go container.go network.go node.go runtime.go secret.go service.go swarm.go task.go

Constants

const (
    // RuntimeContainer is the container based runtime
    RuntimeContainer RuntimeType = "container"
    // RuntimePlugin is the plugin based runtime
    RuntimePlugin RuntimeType = "plugin"

    // 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"
)

type Annotations Uses

type Annotations struct {
    Name   string            `json:",omitempty"`
    Labels map[string]string `json:"Labels"`
}

Annotations represents how to describe an object.

type CAConfig Uses

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 Uses

type ClusterInfo struct {
    ID  string
    Meta
    Spec                   Spec
    TLSInfo                TLSInfo
    RootRotationInProgress bool
}

ClusterInfo represents info about the cluster for outputing in "info" it contains the same information as "Swarm", but without the JoinTokens

type Config Uses

type Config struct {
    ID  string
    Meta
    Spec ConfigSpec
}

Config represents a config.

type ConfigReference Uses

type ConfigReference struct {
    File       *ConfigReferenceFileTarget
    ConfigID   string
    ConfigName string
}

ConfigReference is a reference to a config in swarm

type ConfigReferenceFileTarget Uses

type ConfigReferenceFileTarget struct {
    Name string
    UID  string
    GID  string
    Mode os.FileMode
}

ConfigReferenceFileTarget is a file target in a config reference

type ConfigSpec Uses

type ConfigSpec struct {
    Annotations
    Data []byte `json:",omitempty"`
}

ConfigSpec represents a config specification from a config in swarm

type ContainerSpec Uses

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"`
    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"`
}

ContainerSpec represents the spec of a container.

type ContainerStatus Uses

type ContainerStatus struct {
    ContainerID string `json:",omitempty"`
    PID         int    `json:",omitempty"`
    ExitCode    int    `json:",omitempty"`
}

ContainerStatus represents the status of a container.

type CredentialSpec Uses

type CredentialSpec struct {
    File     string
    Registry string
}

CredentialSpec for managed service account (Windows only)

type DNSConfig Uses

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 DispatcherConfig Uses

type DispatcherConfig struct {
    // HeartbeatPeriod defines how often agent should send heartbeats to
    // dispatcher.
    HeartbeatPeriod time.Duration `json:",omitempty"`
}

DispatcherConfig represents dispatcher configuration.

type Driver Uses

type Driver struct {
    Name    string            `json:",omitempty"`
    Options map[string]string `json:",omitempty"`
}

Driver represents a driver (network, logging).

type EncryptionConfig Uses

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 Uses

type Endpoint struct {
    Spec       EndpointSpec        `json:",omitempty"`
    Ports      []PortConfig        `json:",omitempty"`
    VirtualIPs []EndpointVirtualIP `json:",omitempty"`
}

Endpoint represents an endpoint.

type EndpointSpec Uses

type EndpointSpec struct {
    Mode  ResolutionMode `json:",omitempty"`
    Ports []PortConfig   `json:",omitempty"`
}

EndpointSpec represents the spec of an endpoint.

type EndpointVirtualIP Uses

type EndpointVirtualIP struct {
    NetworkID string `json:",omitempty"`
    Addr      string `json:",omitempty"`
}

EndpointVirtualIP represents the virtual ip of a port.

type EngineDescription Uses

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 Uses

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 Uses

type ExternalCAProtocol string

ExternalCAProtocol represents type of external CA.

const ExternalCAProtocolCFSSL ExternalCAProtocol = "cfssl"

ExternalCAProtocolCFSSL CFSSL

type GlobalService Uses

type GlobalService struct{}

GlobalService is a kind of ServiceMode.

type IPAMConfig Uses

type IPAMConfig struct {
    Subnet  string `json:",omitempty"`
    Range   string `json:",omitempty"`
    Gateway string `json:",omitempty"`
}

IPAMConfig represents ipam configuration.

type IPAMOptions Uses

type IPAMOptions struct {
    Driver  Driver       `json:",omitempty"`
    Configs []IPAMConfig `json:",omitempty"`
}

IPAMOptions represents ipam options.

type Info Uses

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"`
}

Info represents generic information about swarm.

type InitRequest Uses

type InitRequest struct {
    ListenAddr       string
    AdvertiseAddr    string
    DataPathAddr     string
    ForceNewCluster  bool
    Spec             Spec
    AutoLockManagers bool
    Availability     NodeAvailability
}

InitRequest is the request used to init a swarm.

type JoinRequest Uses

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 Uses

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 Uses

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 Uses

type ManagerStatus struct {
    Leader       bool         `json:",omitempty"`
    Reachability Reachability `json:",omitempty"`
    Addr         string       `json:",omitempty"`
}

ManagerStatus represents the status of a manager.

type Meta Uses

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 Network Uses

type Network struct {
    ID  string
    Meta
    Spec        NetworkSpec  `json:",omitempty"`
    DriverState Driver       `json:",omitempty"`
    IPAMOptions *IPAMOptions `json:",omitempty"`
}

Network represents a network.

type NetworkAttachment Uses

type NetworkAttachment struct {
    Network   Network  `json:",omitempty"`
    Addresses []string `json:",omitempty"`
}

NetworkAttachment represents a network attachment.

type NetworkAttachmentConfig Uses

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 NetworkSpec Uses

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 Uses

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 Uses

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 Uses

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 NodeRole Uses

type NodeRole string

NodeRole represents the role of a node.

const (
    // NodeRoleWorker WORKER
    NodeRoleWorker NodeRole = "worker"
    // NodeRoleManager MANAGER
    NodeRoleManager NodeRole = "manager"
)

type NodeSpec Uses

type NodeSpec struct {
    Annotations
    Role         NodeRole         `json:",omitempty"`
    Availability NodeAvailability `json:",omitempty"`
}

NodeSpec represents the spec of a node.

type NodeState Uses

type NodeState string

NodeState represents the state of a node.

const (
    // NodeStateUnknown UNKNOWN
    NodeStateUnknown NodeState = "unknown"
    // NodeStateDown DOWN
    NodeStateDown NodeState = "down"
    // NodeStateReady READY
    NodeStateReady NodeState = "ready"
    // NodeStateDisconnected DISCONNECTED
    NodeStateDisconnected NodeState = "disconnected"
)

type NodeStatus Uses

type NodeStatus struct {
    State   NodeState `json:",omitempty"`
    Message string    `json:",omitempty"`
    Addr    string    `json:",omitempty"`
}

NodeStatus represents the status of a node.

type OrchestrationConfig Uses

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 Peer Uses

type Peer struct {
    NodeID string
    Addr   string
}

Peer represents a peer.

type Placement Uses

type Placement struct {
    Constraints []string              `json:",omitempty"`
    Preferences []PlacementPreference `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 Uses

type PlacementPreference struct {
    Spread *SpreadOver
}

PlacementPreference provides a way to make the scheduler aware of factors such as topology.

type Platform Uses

type Platform struct {
    Architecture string `json:",omitempty"`
    OS           string `json:",omitempty"`
}

Platform represents the platform (Arch/OS).

type PluginDescription Uses

type PluginDescription struct {
    Type string `json:",omitempty"`
    Name string `json:",omitempty"`
}

PluginDescription represents the description of an engine plugin.

type PortConfig Uses

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 Uses

type PortConfigProtocol string

PortConfigProtocol represents the protocol of a port.

const (

    // PortConfigProtocolTCP TCP
    PortConfigProtocolTCP PortConfigProtocol = "tcp"
    // PortConfigProtocolUDP UDP
    PortConfigProtocolUDP PortConfigProtocol = "udp"
)

type PortConfigPublishMode Uses

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 Uses

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 Uses

type Privileges struct {
    CredentialSpec *CredentialSpec
    SELinuxContext *SELinuxContext
}

Privileges defines the security options for the container.

type RaftConfig Uses

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 Uses

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 ReplicatedService Uses

type ReplicatedService struct {
    Replicas *uint64 `json:",omitempty"`
}

ReplicatedService is a kind of ServiceMode.

type ResolutionMode Uses

type ResolutionMode string

ResolutionMode represents a resolution mode.

const (
    // ResolutionModeVIP VIP
    ResolutionModeVIP ResolutionMode = "vip"
    // ResolutionModeDNSRR DNSRR
    ResolutionModeDNSRR ResolutionMode = "dnsrr"
)

type ResourceRequirements Uses

type ResourceRequirements struct {
    Limits       *Resources `json:",omitempty"`
    Reservations *Resources `json:",omitempty"`
}

ResourceRequirements represents resources requirements.

type Resources Uses

type Resources struct {
    NanoCPUs    int64 `json:",omitempty"`
    MemoryBytes int64 `json:",omitempty"`
}

Resources represents resources (CPU/Memory).

type RestartPolicy Uses

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 Uses

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 RuntimeType Uses

type RuntimeType string

RuntimeType is the type of runtime used for the TaskSpec

type RuntimeURL Uses

type RuntimeURL string

RuntimeURL is the proto type url

type SELinuxContext Uses

type SELinuxContext struct {
    Disable bool

    User  string
    Role  string
    Type  string
    Level string
}

SELinuxContext contains the SELinux labels of the container.

type Secret Uses

type Secret struct {
    ID  string
    Meta
    Spec SecretSpec
}

Secret represents a secret.

type SecretReference Uses

type SecretReference struct {
    File       *SecretReferenceFileTarget
    SecretID   string
    SecretName string
}

SecretReference is a reference to a secret in swarm

type SecretReferenceFileTarget Uses

type SecretReferenceFileTarget struct {
    Name string
    UID  string
    GID  string
    Mode os.FileMode
}

SecretReferenceFileTarget is a file target in a secret reference

type SecretSpec Uses

type SecretSpec struct {
    Annotations
    Data []byte `json:",omitempty"`
}

SecretSpec represents a secret specification from a secret in swarm

type Service Uses

type Service struct {
    ID  string
    Meta
    Spec         ServiceSpec   `json:",omitempty"`
    PreviousSpec *ServiceSpec  `json:",omitempty"`
    Endpoint     Endpoint      `json:",omitempty"`
    UpdateStatus *UpdateStatus `json:",omitempty"`
}

Service represents a service.

type ServiceMode Uses

type ServiceMode struct {
    Replicated *ReplicatedService `json:",omitempty"`
    Global     *GlobalService     `json:",omitempty"`
}

ServiceMode represents the mode of a service.

type ServiceSpec Uses

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 Spec Uses

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 Uses

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 Swarm Uses

type Swarm struct {
    ClusterInfo
    JoinTokens JoinTokens
}

Swarm represents a swarm.

type TLSInfo Uses

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 Uses

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"`
}

Task represents a task.

type TaskDefaults Uses

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 Uses

type TaskSpec struct {
    ContainerSpec ContainerSpec             `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 Uses

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"
)

type TaskStatus Uses

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 Uses

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 Uses

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 Uses

type UpdateFlags struct {
    RotateWorkerToken      bool
    RotateManagerToken     bool
    RotateManagerUnlockKey bool
}

UpdateFlags contains flags for SwarmUpdate.

type UpdateState Uses

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 Uses

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.

type Version Uses

type Version struct {
    Index uint64 `json:",omitempty"`
}

Version represents the internal object version.

Package swarm imports 5 packages (graph) and is imported by 1 packages. Updated 2017-05-20. Refresh now. Tools for package owners.