package manager

import "github.com/docker/swarmkit/manager"

Index

Types

type Config

type Config struct {
	SecurityConfig *ca.SecurityConfig

	// ExternalCAs is a list of initial CAs to which a manager node
	// will make certificate signing requests for node certificates.
	ExternalCAs []*api.ExternalCA

	ProtoAddr map[string]string
	// ProtoListener will be used for grpc serving if it's not nil,
	// ProtoAddr fields will be used to create listeners otherwise.
	ProtoListener map[string]net.Listener

	// AdvertiseAddr is a map of addresses to advertise, by protocol.
	AdvertiseAddr string

	// JoinRaft is an optional address of a node in an existing raft
	// cluster to join.
	JoinRaft string

	// Top-level state directory
	StateDir string

	// ForceNewCluster defines if we have to force a new cluster
	// because we are recovering from a backup data directory.
	ForceNewCluster bool

	// ElectionTick defines the amount of ticks needed without
	// leader to trigger a new election
	ElectionTick uint32

	// HeartbeatTick defines the amount of ticks between each
	// heartbeat sent to other members for health-check purposes
	HeartbeatTick uint32
}

Config is used to tune the Manager.

type Manager

type Manager struct {
	Dispatcher *dispatcher.Dispatcher

	RaftNode *raft.Node
	// contains filtered or unexported fields
}

Manager is the cluster manager for Swarm. This is the high-level object holding and initializing all the manager subsystems.

func New

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

New creates a Manager which has not started to accept requests yet.

func (*Manager) Run

func (m *Manager) Run(parent context.Context) error

Run starts all manager sub-systems and the gRPC server at the configured address. The call never returns unless an error occurs or `Stop()` is called.

TODO(aluzzardi): /!\ This function is *way* too complex. /!\ It needs to be split into smaller manageable functions.

func (*Manager) Stop

func (m *Manager) Stop(ctx context.Context)

Stop stops the manager. It immediately closes all open connections and active RPCs as well as stopping the scheduler.

Source Files

doc.go manager.go

Directories

PathSynopsis
manager/allocatorPackage allocator aims to manage allocation of different cluster-wide resources on behalf of the manager.
manager/allocator/networkallocator
manager/controlapi
manager/dispatcher
manager/dispatcher/heartbeat
manager/healthPackage health provides some utility functions to health-check a server.
manager/keymanager
manager/orchestrator
manager/raftpicker
manager/scheduler
manager/statePackage state provides interfaces to work with swarm cluster state.
manager/state/raft
manager/state/raft/membership
manager/state/raft/testutils
manager/state/store
manager/state/watch
manager/testcluster
Version
v1.12.0 (latest)
Published
Jul 26, 2016
Platform
linux/amd64
Imports
26 packages
Last checked
3 hours ago

Tools for package owners.