Documentation ¶
Index ¶
- Variables
- func CheckNetworkConfig(config *Config) error
- func GetFlannelIPv6Network(config *Config) ip.IP6Net
- func GetFlannelNetwork(config *Config) ip.IP4Net
- func MakeSubnetKey(sn ip.IP4Net, sn6 ip.IP6Net) string
- func ParseSubnetKey(s string) (*ip.IP4Net, *ip.IP6Net)
- func WatchLease(ctx context.Context, sm Manager, sn ip.IP4Net, sn6 ip.IP6Net, ...)
- func WatchLeases(ctx context.Context, sm Manager, ownLease *Lease, receiver chan []Event)
- type Config
- type Event
- type EventType
- type Lease
- type LeaseAttrs
- type LeaseWatchResult
- type Manager
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrLeaseTaken = errors.New("subnet: lease already taken") ErrNoMoreTries = errors.New("subnet: no more tries") )
Functions ¶
func CheckNetworkConfig ¶ added in v0.20.0
func GetFlannelIPv6Network ¶ added in v0.20.0
func GetFlannelNetwork ¶ added in v0.20.0
func WatchLease ¶ added in v0.5.6
WatchLease performs a long term watch of the given network's subnet lease and communicates addition/deletion events on receiver channel. It takes care of handling "fall-behind" logic where the history window has advanced too far and it needs to diff the latest snapshot with its saved state and generate events
func WatchLeases ¶ added in v0.5.0
WatchLeases performs a long term watch of the given network's subnet leases and communicates addition/deletion events on receiver channel. It takes care of handling "fall-behind" logic where the history window has advanced too far and it needs to diff the latest snapshot with its saved state and generate events
Types ¶
type Config ¶
type Config struct { EnableIPv4 bool EnableIPv6 bool Network ip.IP4Net IPv6Network ip.IP6Net Networks []ip.IP4Net IPv6Networks []ip.IP6Net SubnetMin ip.IP4 SubnetMax ip.IP4 IPv6SubnetMin *ip.IP6 IPv6SubnetMax *ip.IP6 SubnetLen uint IPv6SubnetLen uint BackendType string `json:"-"` Backend json.RawMessage `json:",omitempty"` }
func ParseConfig ¶
type EventType ¶
type EventType int
func (EventType) MarshalJSON ¶ added in v0.5.0
func (*EventType) UnmarshalJSON ¶ added in v0.5.0
type Lease ¶ added in v0.5.0
type LeaseAttrs ¶ added in v0.2.0
type LeaseAttrs struct { PublicIP ip.IP4 PublicIPv6 *ip.IP6 BackendType string `json:",omitempty"` BackendData json.RawMessage `json:",omitempty"` BackendV6Data json.RawMessage `json:",omitempty"` }
type LeaseWatchResult ¶ added in v0.5.6
type LeaseWatchResult struct { // Either Events or Snapshot will be set. If Events is empty, it means // the cursor was out of range and Snapshot contains the current list // of items, even if empty. Events []Event `json:"events"` Snapshot []Lease `json:"snapshot"` Cursor interface{} `json:"cursor"` }
type Manager ¶ added in v0.5.0
type Manager interface { GetNetworkConfig(ctx context.Context) (*Config, error) AcquireLease(ctx context.Context, attrs *LeaseAttrs) (*Lease, error) RenewLease(ctx context.Context, lease *Lease) error WatchLease(ctx context.Context, sn ip.IP4Net, sn6 ip.IP6Net, cursor interface{}) (LeaseWatchResult, error) WatchLeases(ctx context.Context, cursor interface{}) (LeaseWatchResult, error) CompleteLease(ctx context.Context, lease *Lease, wg *sync.WaitGroup) error Name() string }
Click to show internal directories.
Click to hide internal directories.