package cluster import ( "context" "github.com/docker/docker/api/types/network" ) const ( // EventSocketChange control socket changed EventSocketChange = iota // EventNodeReady cluster node in ready state EventNodeReady // EventNodeLeave node is leaving the cluster EventNodeLeave // EventNetworkKeysAvailable network keys correctly configured in the networking layer EventNetworkKeysAvailable ) // ConfigEventType type of the event produced by the cluster type ConfigEventType uint8 // Provider provides clustering config details type Provider interface { IsManager() bool IsAgent() bool GetLocalAddress() string GetListenAddress() string GetAdvertiseAddress() string GetDataPathAddress() string GetRemoteAddressList() []string ListenClusterEvents() <-chan ConfigEventType AttachNetwork(string, string, []string) (*network.NetworkingConfig, error) DetachNetwork(string, string) error UpdateAttachment(string, string, *network.NetworkingConfig) error WaitForDetachment(context.Context, string, string, string, string) error }