Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoSwarm = fmt.Errorf("This node is not part of a swarm")

    ErrNoSwarm is returned on leaving a cluster that was never initialized

    View Source
    var ErrPendingSwarmExists = fmt.Errorf("This node is processing an existing join request that has not succeeded yet. Use \"docker swarm leave\" to cancel the current request.")

      ErrPendingSwarmExists is returned on initialize or join request for a cluster that is already processing a similar request but has not succeeded yet.

      View Source
      var ErrSwarmCertificatesExpired = errors.New("Swarm certificates have expired. To replace them, leave the swarm and join again.")

        ErrSwarmCertificatesExpired is returned if docker was not started for the whole validity period and they had no chance to renew automatically.

        View Source
        var ErrSwarmExists = fmt.Errorf("This node is already part of a swarm. Use \"docker swarm leave\" to leave this swarm and join another one.")

          ErrSwarmExists is returned on initialize or join request for a cluster that has already been activated

          View Source
          var ErrSwarmJoinTimeoutReached = fmt.Errorf("Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the \"docker info\" command to see the current swarm status of your node.")

            ErrSwarmJoinTimeoutReached is returned when cluster join could not complete before timeout was reached.

            View Source
            var ErrSwarmLocked = fmt.Errorf("Swarm is encrypted and needs to be unlocked before it can be used. Please use \"docker swarm unlock\" to unlock it.")

              ErrSwarmLocked is returned if the swarm is encrypted and needs a key to unlock it.

              Functions

              This section is empty.

              Types

              type Cluster

              type Cluster struct {
              	sync.RWMutex
              	// contains filtered or unexported fields
              }

                Cluster provides capabilities to participate in a cluster as a worker or a manager.

                func New

                func New(config Config) (*Cluster, error)

                  New creates a new Cluster instance using provided config.

                  func (*Cluster) AttachNetwork

                  func (c *Cluster) AttachNetwork(target string, containerID string, addresses []string) (*network.NetworkingConfig, error)

                    AttachNetwork generates an attachment request towards the manager.

                    func (*Cluster) Cleanup

                    func (c *Cluster) Cleanup()

                      Cleanup stops active swarm node. This is run before daemon shutdown.

                      func (*Cluster) CreateNetwork

                      func (c *Cluster) CreateNetwork(s apitypes.NetworkCreateRequest) (string, error)

                        CreateNetwork creates a new cluster managed network.

                        func (*Cluster) CreateSecret

                        func (c *Cluster) CreateSecret(s types.SecretSpec) (string, error)

                          CreateSecret creates a new secret in a managed swarm cluster.

                          func (*Cluster) CreateService

                          func (c *Cluster) CreateService(s types.ServiceSpec, encodedAuth string) (*apitypes.ServiceCreateResponse, error)

                            CreateService creates a new service in a managed swarm cluster.

                            func (*Cluster) DetachNetwork

                            func (c *Cluster) DetachNetwork(target string, containerID string) error

                              DetachNetwork unblocks the waiters waiting on WaitForDetachment so that a request to detach can be generated towards the manager.

                              func (*Cluster) GetAdvertiseAddress

                              func (c *Cluster) GetAdvertiseAddress() string

                                GetAdvertiseAddress returns the remotely reachable address of this node.

                                func (*Cluster) GetListenAddress

                                func (c *Cluster) GetListenAddress() string

                                  GetListenAddress returns the listen address.

                                  func (*Cluster) GetLocalAddress

                                  func (c *Cluster) GetLocalAddress() string

                                    GetLocalAddress returns the local address.

                                    func (*Cluster) GetNetwork

                                    func (c *Cluster) GetNetwork(input string) (apitypes.NetworkResource, error)

                                      GetNetwork returns a cluster network by an ID.

                                      func (*Cluster) GetNetworks

                                      func (c *Cluster) GetNetworks() ([]apitypes.NetworkResource, error)

                                        GetNetworks returns all current cluster managed networks.

                                        func (*Cluster) GetNetworksByName

                                        func (c *Cluster) GetNetworksByName(name string) ([]apitypes.NetworkResource, error)

                                          GetNetworksByName returns cluster managed networks by name. It is ok to have multiple networks here. #18864

                                          func (*Cluster) GetNode

                                          func (c *Cluster) GetNode(input string) (types.Node, error)

                                            GetNode returns a node based on an ID or name.

                                            func (*Cluster) GetNodes

                                            func (c *Cluster) GetNodes(options apitypes.NodeListOptions) ([]types.Node, error)

                                              GetNodes returns a list of all nodes known to a cluster.

                                              func (*Cluster) GetRemoteAddress

                                              func (c *Cluster) GetRemoteAddress() string

                                                GetRemoteAddress returns a known advertise address of a remote manager if available. todo: change to array/connect with info

                                                func (*Cluster) GetSecret

                                                func (c *Cluster) GetSecret(id string) (types.Secret, error)

                                                  GetSecret returns a secret from a managed swarm cluster

                                                  func (*Cluster) GetSecrets

                                                  func (c *Cluster) GetSecrets(options apitypes.SecretListOptions) ([]types.Secret, error)

                                                    GetSecrets returns all secrets of a managed swarm cluster.

                                                    func (*Cluster) GetService

                                                    func (c *Cluster) GetService(input string) (types.Service, error)

                                                      GetService returns a service based on an ID or name.

                                                      func (*Cluster) GetServices

                                                      func (c *Cluster) GetServices(options apitypes.ServiceListOptions) ([]types.Service, error)

                                                        GetServices returns all services of a managed swarm cluster.

                                                        func (*Cluster) GetTask

                                                        func (c *Cluster) GetTask(input string) (types.Task, error)

                                                          GetTask returns a task by an ID.

                                                          func (*Cluster) GetTasks

                                                          func (c *Cluster) GetTasks(options apitypes.TaskListOptions) ([]types.Task, error)

                                                            GetTasks returns a list of tasks matching the filter options.

                                                            func (*Cluster) GetUnlockKey

                                                            func (c *Cluster) GetUnlockKey() (string, error)

                                                              GetUnlockKey returns the unlock key for the swarm.

                                                              func (*Cluster) Info

                                                              func (c *Cluster) Info() types.Info

                                                                Info returns information about the current cluster state.

                                                                func (*Cluster) Init

                                                                func (c *Cluster) Init(req types.InitRequest) (string, error)

                                                                  Init initializes new cluster from user provided request.

                                                                  func (*Cluster) Inspect

                                                                  func (c *Cluster) Inspect() (types.Swarm, error)

                                                                    Inspect retrieves the configuration properties of a managed swarm cluster.

                                                                    func (*Cluster) IsAgent

                                                                    func (c *Cluster) IsAgent() bool

                                                                      IsAgent returns true if Cluster is participating as a worker/agent.

                                                                      func (*Cluster) IsManager

                                                                      func (c *Cluster) IsManager() bool

                                                                        IsManager returns true if Cluster is participating as a manager.

                                                                        func (*Cluster) Join

                                                                        func (c *Cluster) Join(req types.JoinRequest) error

                                                                          Join makes current Cluster part of an existing swarm cluster.

                                                                          func (*Cluster) Leave

                                                                          func (c *Cluster) Leave(force bool) error

                                                                            Leave shuts down Cluster and removes current state.

                                                                            func (*Cluster) ListenClusterEvents

                                                                            func (c *Cluster) ListenClusterEvents() <-chan struct{}

                                                                              ListenClusterEvents returns a channel that receives messages on cluster participation changes. todo: make cancelable and accessible to multiple callers

                                                                              func (*Cluster) RemoveNetwork

                                                                              func (c *Cluster) RemoveNetwork(input string) error

                                                                                RemoveNetwork removes a cluster network.

                                                                                func (*Cluster) RemoveNode

                                                                                func (c *Cluster) RemoveNode(input string, force bool) error

                                                                                  RemoveNode removes a node from a cluster

                                                                                  func (*Cluster) RemoveSecret

                                                                                  func (c *Cluster) RemoveSecret(id string) error

                                                                                    RemoveSecret removes a secret from a managed swarm cluster.

                                                                                    func (*Cluster) RemoveService

                                                                                    func (c *Cluster) RemoveService(input string) error

                                                                                      RemoveService removes a service from a managed swarm cluster.

                                                                                      func (*Cluster) ServiceLogs

                                                                                      func (c *Cluster) ServiceLogs(ctx context.Context, input string, config *backend.ContainerLogsConfig, started chan struct{}) error

                                                                                        ServiceLogs collects service logs and writes them back to `config.OutStream`

                                                                                        func (*Cluster) UnlockSwarm

                                                                                        func (c *Cluster) UnlockSwarm(req types.UnlockRequest) error

                                                                                          UnlockSwarm provides a key to decrypt data that is encrypted at rest.

                                                                                          func (*Cluster) Update

                                                                                          func (c *Cluster) Update(version uint64, spec types.Spec, flags types.UpdateFlags) error

                                                                                            Update updates configuration of a managed swarm cluster.

                                                                                            func (*Cluster) UpdateAttachment

                                                                                            func (c *Cluster) UpdateAttachment(target, containerID string, config *network.NetworkingConfig) error

                                                                                              UpdateAttachment signals the attachment config to the attachment waiter who is trying to start or attach the container to the network.

                                                                                              func (*Cluster) UpdateNode

                                                                                              func (c *Cluster) UpdateNode(input string, version uint64, spec types.NodeSpec) error

                                                                                                UpdateNode updates existing nodes properties.

                                                                                                func (*Cluster) UpdateSecret

                                                                                                func (c *Cluster) UpdateSecret(id string, version uint64, spec types.SecretSpec) error

                                                                                                  UpdateSecret updates a secret in a managed swarm cluster. Note: this is not exposed to the CLI but is available from the API only

                                                                                                  func (*Cluster) UpdateService

                                                                                                  func (c *Cluster) UpdateService(serviceIDOrName string, version uint64, spec types.ServiceSpec, encodedAuth string, registryAuthFrom string) (*apitypes.ServiceUpdateResponse, error)

                                                                                                    UpdateService updates existing service to match new properties.

                                                                                                    func (*Cluster) WaitForDetachment

                                                                                                    func (c *Cluster) WaitForDetachment(ctx context.Context, networkName, networkID, taskID, containerID string) error

                                                                                                      WaitForDetachment waits for the container to stop or detach from the network.

                                                                                                      type Config

                                                                                                      type Config struct {
                                                                                                      	Root                   string
                                                                                                      	Name                   string
                                                                                                      	Backend                executorpkg.Backend
                                                                                                      	NetworkSubnetsProvider NetworkSubnetsProvider
                                                                                                      
                                                                                                      	// DefaultAdvertiseAddr is the default host/IP or network interface to use
                                                                                                      	// if no AdvertiseAddr value is specified.
                                                                                                      	DefaultAdvertiseAddr string
                                                                                                      
                                                                                                      	// path to store runtime state, such as the swarm control socket
                                                                                                      	RuntimeRoot string
                                                                                                      }

                                                                                                        Config provides values for Cluster.

                                                                                                        type NetworkSubnetsProvider

                                                                                                        type NetworkSubnetsProvider interface {
                                                                                                        	V4Subnets() []net.IPNet
                                                                                                        	V6Subnets() []net.IPNet
                                                                                                        }

                                                                                                          NetworkSubnetsProvider exposes functions for retrieving the subnets of networks managed by Docker, so they can be filtered.

                                                                                                          Directories

                                                                                                          Path Synopsis