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