Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IPAMConfig ¶
type IPAMConfig struct { *Range Name string Type string `json:"type"` Routes []*types.Route `json:"routes"` IPArgs []net.IP `json:"-"` // Requested IPs from CNI_ARGS and args ResolvConf string `json:"resolvConf"` OpenStackConf *OpenStackConf `json:"openstackConf"` NeutronConf *NeutronConf `json:"neutronConf"` }
IPAMConfig represents the IP related network configuration. This nests Range because we initially only supported a single range directly, and wish to preserve backwards compatability
func LoadIPAMConfig ¶
func LoadIPAMConfig(bytes []byte, envArgs string) (*IPAMConfig, string, error)
NewIPAMConfig creates a NetworkConfig from the given network name.
type IPAMEnvArgs ¶
type IPAMEnvArgs struct { types.CommonArgs IP net.IP `json:"ip,omitempty"` }
type IPAllocator ¶
type IPAllocator struct {
// contains filtered or unexported fields
}
func NewIPAllocator ¶
func NewIPAllocator(store backend.Store) *IPAllocator
func (*IPAllocator) Get ¶
func (a *IPAllocator) Get(id string) (*current.IPConfig, error)
Get alocates an IP
func (*IPAllocator) Release ¶
func (a *IPAllocator) Release(id string) error
Release clears all IPs allocated for the container with given ID
type Net ¶
type Net struct { Name string `json:"name"` CNIVersion string `json:"cniVersion"` IPAM *IPAMConfig `json:"ipam"` RuntimeConfig struct { IPRanges []RangeSet `json:"ipRanges,omitempty"` } `json:"runtimeConfig,omitempty"` Args *struct { A *IPAMArgs `json:"cni"` } `json:"args"` }
The top-level network config - IPAM plugins are passed the full configuration of the calling plugin, not just the IPAM section.
type NeutronConf ¶
type NeutronConf struct {
Networks []string `json:"networks"`
}
type OpenStackConf ¶
type Range ¶
type Range struct { RangeStart net.IP `json:"rangeStart,omitempty"` // The first ip, inclusive RangeEnd net.IP `json:"rangeEnd,omitempty"` // The last ip, inclusive Subnet types.IPNet `json:"subnet"` Gateway net.IP `json:"gateway,omitempty"` }
func (*Range) Canonicalize ¶
Canonicalize takes a given range and ensures that all information is consistent, filling out Start, End, and Gateway with sane values if missing
func (*Range) Contains ¶
IsValidIP checks if a given ip is a valid, allocatable address in a given Range
type RangeSet ¶
type RangeSet []Range
func (*RangeSet) Canonicalize ¶
Canonicalize ensures the RangeSet is in a standard form, and detects any invalid input. Call Range.Canonicalize() on every Range in the set