Documentation ¶
Overview ¶
+groupName=ipam
Index ¶
- Constants
- type Address
- type AddressIterator
- type AllocationIP
- type AllocationMap
- type IPAMPodCIDR
- type IPAMPoolAllocation
- type IPAMPoolDemand
- type IPAMPoolRequest
- type IPAMPoolSpec
- type IPAMSpec
- type IPAMStatus
- type IPReleaseStatus
- type Instance
- type InstanceMap
- func (m *InstanceMap) DeepCopy() *InstanceMap
- func (m *InstanceMap) Delete(instanceID string)
- func (m *InstanceMap) Exists(instanceID string) (exists bool)
- func (m *InstanceMap) ForeachAddress(instanceID string, fn AddressIterator) error
- func (m *InstanceMap) ForeachInterface(instanceID string, fn InterfaceIterator) error
- func (m *InstanceMap) GetInterface(instanceID, interfaceID string) (InterfaceRevision, bool)
- func (m *InstanceMap) NumInstances() (size int)
- func (m *InstanceMap) Update(instanceID string, iface InterfaceRevision)
- func (m *InstanceMap) UpdateInstance(instanceID string, instance *Instance)
- type Interface
- type InterfaceIterator
- type InterfaceRevision
- type Limits
- type OperatorStatus
- type PodCIDRMap
- type PodCIDRMapEntry
- type PodCIDRStatus
- type PoolID
- type PoolQuota
- type PoolQuotaMap
- type Subnet
- type SubnetMap
- type Tags
- type VirtualNetwork
- type VirtualNetworkMap
Constants ¶
const PoolNotExists = PoolID("")
PoolNotExists indicate that no such pool ID exists
const PoolUnspec = PoolNotExists
PoolUnspec indicates that the pool ID is unspecified
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddressIterator ¶
AddressIterator is the function called by the ForeachAddress iterator
type AllocationIP ¶
type AllocationIP struct { // Owner is the owner of the IP. This field is set if the IP has been // allocated. It will be set to the pod name or another identifier // representing the usage of the IP // // The owner field is left blank for an entry in Spec.IPAM.Pool and // filled out as the IP is used and also added to Status.IPAM.Used. // // +optional Owner string `json:"owner,omitempty"` // Resource is set for both available and allocated IPs, it represents // what resource the IP is associated with, e.g. in combination with // AWS ENI, this will refer to the ID of the ENI // // +optional Resource string `json:"resource,omitempty"` }
AllocationIP is an IP which is available for allocation, or already has been allocated
func (*AllocationIP) DeepCopy ¶
func (in *AllocationIP) DeepCopy() *AllocationIP
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationIP.
func (*AllocationIP) DeepCopyInto ¶
func (in *AllocationIP) DeepCopyInto(out *AllocationIP)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AllocationIP) DeepEqual ¶
func (in *AllocationIP) DeepEqual(other *AllocationIP) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type AllocationMap ¶
type AllocationMap map[string]AllocationIP
AllocationMap is a map of allocated IPs indexed by IP
func (AllocationMap) DeepCopy ¶
func (in AllocationMap) DeepCopy() AllocationMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationMap.
func (AllocationMap) DeepCopyInto ¶
func (in AllocationMap) DeepCopyInto(out *AllocationMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AllocationMap) DeepEqual ¶
func (in *AllocationMap) DeepEqual(other *AllocationMap) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type IPAMPodCIDR ¶
type IPAMPodCIDR string
IPAMPodCIDR is a pod CIDR
+kubebuilder:validation:Format=cidr
type IPAMPoolAllocation ¶
type IPAMPoolAllocation struct { // Pool is the name of the IPAM pool backing this allocation // // +kubebuilder:validation:MinLength=1 Pool string `json:"pool"` // CIDRs contains a list of pod CIDRs currently allocated from this pool // // +optional CIDRs []IPAMPodCIDR `json:"cidrs,omitempty"` }
IPAMPoolAllocation describes an allocation of an IPAM pool from the operator to the node. It contains the assigned PodCIDRs allocated from this pool
func (*IPAMPoolAllocation) DeepCopy ¶
func (in *IPAMPoolAllocation) DeepCopy() *IPAMPoolAllocation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolAllocation.
func (*IPAMPoolAllocation) DeepCopyInto ¶
func (in *IPAMPoolAllocation) DeepCopyInto(out *IPAMPoolAllocation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IPAMPoolAllocation) DeepEqual ¶
func (in *IPAMPoolAllocation) DeepEqual(other *IPAMPoolAllocation) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type IPAMPoolDemand ¶
type IPAMPoolDemand struct { // IPv4Addrs contains the number of requested IPv4 addresses out of a given // pool // // +optional IPv4Addrs int `json:"ipv4-addrs,omitempty"` // IPv6Addrs contains the number of requested IPv6 addresses out of a given // pool // // +optional IPv6Addrs int `json:"ipv6-addrs,omitempty"` }
IPAMPoolRequest is a request from the agent to the operator, indicating how may IPs it requires from a given pool
func (*IPAMPoolDemand) DeepCopy ¶
func (in *IPAMPoolDemand) DeepCopy() *IPAMPoolDemand
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolDemand.
func (*IPAMPoolDemand) DeepCopyInto ¶
func (in *IPAMPoolDemand) DeepCopyInto(out *IPAMPoolDemand)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IPAMPoolDemand) DeepEqual ¶
func (in *IPAMPoolDemand) DeepEqual(other *IPAMPoolDemand) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type IPAMPoolRequest ¶
type IPAMPoolRequest struct { // Pool is the name of the IPAM pool backing this request // // +kubebuilder:validation:MinLength=1 Pool string `json:"pool"` // Needed indicates how many IPs out of the above Pool this node requests // from the operator. The operator runs a reconciliation loop to ensure each // node always has enough PodCIDRs allocated in each pool to fulfill the // requested number of IPs here. // // +optional Needed IPAMPoolDemand `json:"needed,omitempty"` }
func (*IPAMPoolRequest) DeepCopy ¶
func (in *IPAMPoolRequest) DeepCopy() *IPAMPoolRequest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolRequest.
func (*IPAMPoolRequest) DeepCopyInto ¶
func (in *IPAMPoolRequest) DeepCopyInto(out *IPAMPoolRequest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IPAMPoolRequest) DeepEqual ¶
func (in *IPAMPoolRequest) DeepEqual(other *IPAMPoolRequest) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type IPAMPoolSpec ¶
type IPAMPoolSpec struct { // Requested contains a list of IPAM pool requests, i.e. indicates how many // addresses this node requests out of each pool listed here. This field // is owned and written to by cilium-agent and read by the operator. // // +optional Requested []IPAMPoolRequest `json:"requested,omitempty"` // Allocated contains the list of pooled CIDR assigned to this node. The // operator will add new pod CIDRs to this field, whereas the agent will // remove CIDRs it has released. // // +optional Allocated []IPAMPoolAllocation `json:"allocated,omitempty"` }
func (*IPAMPoolSpec) DeepCopy ¶
func (in *IPAMPoolSpec) DeepCopy() *IPAMPoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolSpec.
func (*IPAMPoolSpec) DeepCopyInto ¶
func (in *IPAMPoolSpec) DeepCopyInto(out *IPAMPoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IPAMPoolSpec) DeepEqual ¶
func (in *IPAMPoolSpec) DeepEqual(other *IPAMPoolSpec) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type IPAMSpec ¶
type IPAMSpec struct { // Pool is the list of IPv4 addresses available to the node for allocation. // When an IPv4 address is used, it will remain on this list but will be added to // Status.IPAM.Used // // +optional Pool AllocationMap `json:"pool,omitempty"` // IPv6Pool is the list of IPv6 addresses available to the node for allocation. // When an IPv6 address is used, it will remain on this list but will be added to // Status.IPAM.IPv6Used // // +optional IPv6Pool AllocationMap `json:"ipv6-pool,omitempty"` // Pools contains the list of assigned IPAM pools for this node. // // +optional Pools IPAMPoolSpec `json:"pools,omitempty"` // PodCIDRs is the list of CIDRs available to the node for allocation. // When an IP is used, the IP will be added to Status.IPAM.Used // // +optional PodCIDRs []string `json:"podCIDRs,omitempty"` // MinAllocate is the minimum number of IPs that must be allocated when // the node is first bootstrapped. It defines the minimum base socket // of addresses that must be available. After reaching this watermark, // the PreAllocate and MaxAboveWatermark logic takes over to continue // allocating IPs. // // +kubebuilder:validation:Minimum=0 MinAllocate int `json:"min-allocate,omitempty"` // MaxAllocate is the maximum number of IPs that can be allocated to the // node. When the current amount of allocated IPs will approach this value, // the considered value for PreAllocate will decrease down to 0 in order to // not attempt to allocate more addresses than defined. // // +kubebuilder:validation:Minimum=0 MaxAllocate int `json:"max-allocate,omitempty"` // PreAllocate defines the number of IP addresses that must be // available for allocation in the IPAMspec. It defines the buffer of // addresses available immediately without requiring cilium-operator to // get involved. // // +kubebuilder:validation:Minimum=0 PreAllocate int `json:"pre-allocate,omitempty"` // MaxAboveWatermark is the maximum number of addresses to allocate // beyond the addresses needed to reach the PreAllocate watermark. // Going above the watermark can help reduce the number of API calls to // allocate IPs, e.g. when a new ENI is allocated, as many secondary // IPs as possible are allocated. Limiting the amount can help reduce // waste of IPs. // // +kubebuilder:validation:Minimum=0 MaxAboveWatermark int `json:"max-above-watermark,omitempty"` }
IPAMSpec is the IPAM specification of the node
This structure is embedded into v2.CiliumNode
func (*IPAMSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMSpec.
func (*IPAMSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPAMStatus ¶
type IPAMStatus struct { // Used lists all IPv4 addresses out of Spec.IPAM.Pool which have been allocated // and are in use. // // +optional Used AllocationMap `json:"used,omitempty"` // IPv6Used lists all IPv6 addresses out of Spec.IPAM.IPv6Pool which have been // allocated and are in use. // // +optional IPv6Used AllocationMap `json:"ipv6-used,omitempty"` // PodCIDRs lists the status of each pod CIDR allocated to this node. // // +optional PodCIDRs PodCIDRMap `json:"pod-cidrs,omitempty"` // Operator is the Operator status of the node // // +optional OperatorStatus OperatorStatus `json:"operator-status,omitempty"` // ReleaseIPs tracks the state for every IPv4 address considered for release. // The value can be one of the following strings: // * marked-for-release : Set by operator as possible candidate for IP // * ready-for-release : Acknowledged as safe to release by agent // * do-not-release : IP already in use / not owned by the node. Set by agent // * released : IP successfully released. Set by operator // // +optional ReleaseIPs map[string]IPReleaseStatus `json:"release-ips,omitempty"` // ReleaseIPv6s tracks the state for every IPv6 address considered for release. // The value can be one of the following strings: // * marked-for-release : Set by operator as possible candidate for IP // * ready-for-release : Acknowledged as safe to release by agent // * do-not-release : IP already in use / not owned by the node. Set by agent // * released : IP successfully released. Set by operator // // +optional ReleaseIPv6s map[string]IPReleaseStatus `json:"release-ipv6s,omitempty"` }
IPAMStatus is the IPAM status of a node
This structure is embedded into v2.CiliumNode
func (*IPAMStatus) DeepCopy ¶
func (in *IPAMStatus) DeepCopy() *IPAMStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMStatus.
func (*IPAMStatus) DeepCopyInto ¶
func (in *IPAMStatus) DeepCopyInto(out *IPAMStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IPAMStatus) DeepEqual ¶
func (in *IPAMStatus) DeepEqual(other *IPAMStatus) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type IPReleaseStatus ¶
type IPReleaseStatus string
IPReleaseStatus defines the valid states in IP release handshake
+kubebuilder:validation:Enum=marked-for-release;ready-for-release;do-not-release;released
type Instance ¶
type Instance struct { // interfaces is a map of all interfaces attached to the instance // indexed by the interface ID Interfaces map[string]InterfaceRevision }
Instance is the representation of an instance, typically a VM, subject to per-node IPAM logic
+k8s:deepcopy-gen=false +deepequal-gen=false
type InstanceMap ¶
type InstanceMap struct {
// contains filtered or unexported fields
}
InstanceMap is the list of all instances indexed by instance ID
+k8s:deepcopy-gen=false +deepequal-gen=false
func (*InstanceMap) DeepCopy ¶
func (m *InstanceMap) DeepCopy() *InstanceMap
DeepCopy returns a deep copy
func (*InstanceMap) Delete ¶
func (m *InstanceMap) Delete(instanceID string)
Delete instance from m.data
func (*InstanceMap) Exists ¶
func (m *InstanceMap) Exists(instanceID string) (exists bool)
Exists returns whether the instance ID is in the instanceMap
func (*InstanceMap) ForeachAddress ¶
func (m *InstanceMap) ForeachAddress(instanceID string, fn AddressIterator) error
ForeachAddress calls fn for each address on each interface attached to each instance. If an instanceID is specified, the only the interfaces and addresses of the specified instance are considered.
The InstanceMap is read-locked throughout the iteration process, i.e., no updates will occur. However, the address object given to the AddressIterator will point to live data and must be deep copied if used outside of the context of the iterator function.
func (*InstanceMap) ForeachInterface ¶
func (m *InstanceMap) ForeachInterface(instanceID string, fn InterfaceIterator) error
ForeachInterface calls fn for each interface on each interface attached to each instance. If an instanceID is specified, the only the interfaces and addresses of the specified instance are considered.
The InstanceMap is read-locked throughout the iteration process, i.e., no updates will occur. However, the address object given to the InterfaceIterator will point to live data and must be deep copied if used outside of the context of the iterator function.
func (*InstanceMap) GetInterface ¶
func (m *InstanceMap) GetInterface(instanceID, interfaceID string) (InterfaceRevision, bool)
GetInterface returns returns a particular interface of an instance. The boolean indicates whether the interface was found or not.
func (*InstanceMap) NumInstances ¶
func (m *InstanceMap) NumInstances() (size int)
NumInstances returns the number of instances in the instance map
func (*InstanceMap) Update ¶
func (m *InstanceMap) Update(instanceID string, iface InterfaceRevision)
Update updates the definition of an interface for a particular instance. If the interface is already known, the definition is updated, otherwise the interface is added to the instance.
func (*InstanceMap) UpdateInstance ¶
func (m *InstanceMap) UpdateInstance(instanceID string, instance *Instance)
UpdateInstance updates the interfaces map for a particular instance.
type Interface ¶
type Interface interface { // InterfaceID must return the identifier of the interface InterfaceID() string // ForeachAddress must iterate over all addresses of the interface and // call fn for each address ForeachAddress(instanceID string, fn AddressIterator) error // DeepCopyInterface returns a deep copy of the underlying interface type. DeepCopyInterface() Interface }
Interface is the implementation of a IPAM relevant network interface +k8s:deepcopy-gen=false +deepequal-gen=false
type InterfaceIterator ¶
type InterfaceIterator func(instanceID, interfaceID string, iface InterfaceRevision) error
InterfaceIterator is the function called by the ForeachInterface iterator
type InterfaceRevision ¶
type InterfaceRevision struct { // Resource is the interface resource Resource Interface // Fingerprint is the fingerprint reprsenting the network interface // configuration. It is typically implemented as the result of a hash // function calculated off the resource. This field is optional, not // all IPAM backends make use of fingerprints. Fingerprint string }
InterfaceRevision is the configurationr revision of a network interface. It consists of a revision hash representing the current configuration version and the resource itself.
+k8s:deepcopy-gen=false +deepequal-gen=false
type Limits ¶
type Limits struct { // Adapters specifies the maximum number of interfaces that can be // attached to the instance Adapters int // IPv4 is the maximum number of IPv4 addresses per adapter/interface IPv4 int // IPv6 is the maximum number of IPv6 addresses per adapter/interface IPv6 int // HypervisorType tracks the instance's hypervisor type if available. Used to determine if features like prefix // delegation are supported on an instance. Bare metal instances would have empty string. HypervisorType string }
Limits specifies the IPAM relevant instance limits
func (*Limits) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Limits.
func (*Limits) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperatorStatus ¶
type OperatorStatus struct { // Error is the error message set by cilium-operator. // // +optional Error string `json:"error,omitempty"` }
OperatorStatus is the status used by cilium-operator to report errors in case the allocation CIDR failed.
func (*OperatorStatus) DeepCopy ¶
func (in *OperatorStatus) DeepCopy() *OperatorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorStatus.
func (*OperatorStatus) DeepCopyInto ¶
func (in *OperatorStatus) DeepCopyInto(out *OperatorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OperatorStatus) DeepEqual ¶
func (in *OperatorStatus) DeepEqual(other *OperatorStatus) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type PodCIDRMap ¶
type PodCIDRMap map[string]PodCIDRMapEntry
func (PodCIDRMap) DeepCopy ¶
func (in PodCIDRMap) DeepCopy() PodCIDRMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodCIDRMap.
func (PodCIDRMap) DeepCopyInto ¶
func (in PodCIDRMap) DeepCopyInto(out *PodCIDRMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PodCIDRMap) DeepEqual ¶
func (in *PodCIDRMap) DeepEqual(other *PodCIDRMap) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type PodCIDRMapEntry ¶
type PodCIDRMapEntry struct { // Status describes the status of a pod CIDR // // +optional Status PodCIDRStatus `json:"status,omitempty"` }
func (*PodCIDRMapEntry) DeepCopy ¶
func (in *PodCIDRMapEntry) DeepCopy() *PodCIDRMapEntry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodCIDRMapEntry.
func (*PodCIDRMapEntry) DeepCopyInto ¶
func (in *PodCIDRMapEntry) DeepCopyInto(out *PodCIDRMapEntry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PodCIDRMapEntry) DeepEqual ¶
func (in *PodCIDRMapEntry) DeepEqual(other *PodCIDRMapEntry) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type PodCIDRStatus ¶
type PodCIDRStatus string
+kubebuilder:validation:Enum=released;depleted;in-use
const ( PodCIDRStatusReleased PodCIDRStatus = "released" PodCIDRStatusDepleted PodCIDRStatus = "depleted" PodCIDRStatusInUse PodCIDRStatus = "in-use" )
type PoolQuota ¶
type PoolQuota struct { // AvailabilityZone is the availability zone in which the IPAM pool resides in AvailabilityZone string // AvailableIPs is the number of available IPs in the pool AvailableIPs int // AvailableIPv6s is the number of available IPv6 addresses in the pool AvailableIPv6s int }
PoolQuota defines the limits of an IPAM pool
func (*PoolQuota) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolQuota.
func (*PoolQuota) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PoolQuotaMap ¶
PoolQuotaMap is a map of pool quotas indexes by pool identifier
func (PoolQuotaMap) DeepCopy ¶
func (in PoolQuotaMap) DeepCopy() PoolQuotaMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolQuotaMap.
func (PoolQuotaMap) DeepCopyInto ¶
func (in PoolQuotaMap) DeepCopyInto(out *PoolQuotaMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PoolQuotaMap) DeepEqual ¶
func (in *PoolQuotaMap) DeepEqual(other *PoolQuotaMap) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type Subnet ¶
type Subnet struct { // ID is the subnet ID ID string // Name is the subnet name Name string // CIDR is the IPv4 CIDR associated with the subnet CIDR *cidr.CIDR // IPv6CIDR is the IPv6 CIDR associated with the subnet IPv6CIDR *cidr.CIDR // AvailabilityZone is the availability zone of the subnet AvailabilityZone string // VirtualNetworkID is the virtual network the subnet is in VirtualNetworkID string // AvailableAddresses is the number of IPv4 addresses available for // allocation AvailableAddresses int // AvailableIPv6Addresses is the number of IPv6 addresses available for // allocation AvailableIPv6Addresses int // Tags is the tags of the subnet Tags Tags }
Subnet is a representation of a subnet
func (*Subnet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnet.
func (*Subnet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetMap ¶
SubnetMap indexes subnets by subnet ID
func (SubnetMap) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetMap.
func (SubnetMap) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SubnetMap) DeepEqual ¶
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
func (SubnetMap) FirstSubnetWithAvailableAddresses ¶
FirstSubnetWithAvailableAddresses returns the first pool ID in the list of subnets with available addresses. If any of the preferred pool IDs have available addresses, the first pool ID with available addresses is returned.
type Tags ¶
Tags implements generic key value tags
func (Tags) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tags.
func (Tags) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualNetwork ¶
type VirtualNetwork struct { // ID is the ID of the virtual network ID string // PrimaryCIDR is the primary IPv4 CIDR PrimaryCIDR string // CIDRs is the list of secondary IPv4 CIDR ranges associated with the VPC CIDRs []string // IPv6CIDRs is the list of IPv6 CIDR ranges associated with the VPC IPv6CIDRs []string }
VirtualNetwork is the representation of a virtual network
func (*VirtualNetwork) DeepCopy ¶
func (in *VirtualNetwork) DeepCopy() *VirtualNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetwork.
func (*VirtualNetwork) DeepCopyInto ¶
func (in *VirtualNetwork) DeepCopyInto(out *VirtualNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualNetwork) DeepEqual ¶
func (in *VirtualNetwork) DeepEqual(other *VirtualNetwork) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.
type VirtualNetworkMap ¶
type VirtualNetworkMap map[string]*VirtualNetwork
VirtualNetworkMap indexes virtual networks by their ID
func (VirtualNetworkMap) DeepCopy ¶
func (in VirtualNetworkMap) DeepCopy() VirtualNetworkMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkMap.
func (VirtualNetworkMap) DeepCopyInto ¶
func (in VirtualNetworkMap) DeepCopyInto(out *VirtualNetworkMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualNetworkMap) DeepEqual ¶
func (in *VirtualNetworkMap) DeepEqual(other *VirtualNetworkMap) bool
DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.