types

package
v1.14.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2024 License: Apache-2.0 Imports: 3 Imported by: 24

Documentation ¶

Overview ¶

+groupName=ipam

Index ¶

Constants ¶

View Source
const PoolNotExists = PoolID("")

PoolNotExists indicate that no such pool ID exists

View Source
const PoolUnspec = PoolNotExists

PoolUnspec indicates that the pool ID is unspecified

Variables ¶

This section is empty.

Functions ¶

This section is empty.

Types ¶

type Address ¶

type Address interface{}

type AddressIterator ¶

type AddressIterator func(instanceID, interfaceID, ip, poolID string, address Address) error

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 IPs available to the node for allocation. When
	// an IP is used, the IP will remain on this list but will be added to
	// Status.IPAM.Used
	//
	// +optional
	Pool AllocationMap `json:"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"`

	// PodCIDRAllocationThreshold defines the minimum number of free IPs which
	// must be available to this node via its pod CIDR pool. If the total number
	// of IP addresses in the pod CIDR pool is less than this value, the pod
	// CIDRs currently in-use by this node will be marked as depleted and
	// cilium-operator will allocate a new pod CIDR to this node.
	// This value effectively defines the buffer of IP addresses available
	// immediately without requiring cilium-operator to get involved.
	//
	// +kubebuilder:validation:Minimum=0
	PodCIDRAllocationThreshold int `json:"pod-cidr-allocation-threshold,omitempty"`

	// PodCIDRReleaseThreshold defines the maximum number of free IPs which may
	// be available to this node via its pod CIDR pool. While the total number
	// of free IP addresses in the pod CIDR pool is larger than this value,
	// cilium-agent will attempt to release currently unused pod CIDRs.
	//
	// +kubebuilder:validation:Minimum=0
	PodCIDRReleaseThreshold int `json:"pod-cidr-release-threshold,omitempty"`
}

IPAMSpec is the IPAM specification of the node

This structure is embedded into v2.CiliumNode

func (*IPAMSpec) DeepCopy ¶

func (in *IPAMSpec) DeepCopy() *IPAMSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMSpec.

func (*IPAMSpec) DeepCopyInto ¶

func (in *IPAMSpec) DeepCopyInto(out *IPAMSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAMSpec) DeepEqual ¶

func (in *IPAMSpec) DeepEqual(other *IPAMSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type IPAMStatus ¶

type IPAMStatus struct {
	// Used lists all IPs out of Spec.IPAM.Pool which have been allocated
	// and are in use.
	//
	// +optional
	Used AllocationMap `json:"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 IP considered for release.
	// value can be one of the following string :
	// * 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"`
}

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 NewInstanceMap ¶

func NewInstanceMap() *InstanceMap

NewInstanceMap returns a new InstanceMap

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.

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 ¶

func (in *Limits) DeepCopy() *Limits

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Limits.

func (*Limits) DeepCopyInto ¶

func (in *Limits) DeepCopyInto(out *Limits)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Limits) DeepEqual ¶

func (in *Limits) DeepEqual(other *Limits) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. 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 PoolID ¶

type PoolID string

PoolID is the type used to identify an IPAM pool

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
}

PoolQuota defines the limits of an IPAM pool

func (*PoolQuota) DeepCopy ¶

func (in *PoolQuota) DeepCopy() *PoolQuota

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolQuota.

func (*PoolQuota) DeepCopyInto ¶

func (in *PoolQuota) DeepCopyInto(out *PoolQuota)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PoolQuota) DeepEqual ¶

func (in *PoolQuota) DeepEqual(other *PoolQuota) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PoolQuotaMap ¶

type PoolQuotaMap map[PoolID]PoolQuota

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 CIDR associated with the subnet
	CIDR *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 addresses available for
	// allocation
	AvailableAddresses int

	// Tags is the tags of the subnet
	Tags Tags
}

Subnet is a representation of a subnet

func (*Subnet) DeepCopy ¶

func (in *Subnet) DeepCopy() *Subnet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnet.

func (*Subnet) DeepCopyInto ¶

func (in *Subnet) DeepCopyInto(out *Subnet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Subnet) DeepEqual ¶

func (in *Subnet) DeepEqual(other *Subnet) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type SubnetMap ¶

type SubnetMap map[string]*Subnet

SubnetMap indexes subnets by subnet ID

func (SubnetMap) DeepCopy ¶

func (in SubnetMap) DeepCopy() SubnetMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetMap.

func (SubnetMap) DeepCopyInto ¶

func (in SubnetMap) DeepCopyInto(out *SubnetMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SubnetMap) DeepEqual ¶

func (in *SubnetMap) DeepEqual(other *SubnetMap) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (SubnetMap) FirstSubnetWithAvailableAddresses ¶

func (m SubnetMap) FirstSubnetWithAvailableAddresses(preferredPoolIDs []PoolID) (PoolID, int)

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 ¶

type Tags map[string]string

Tags implements generic key value tags

func (Tags) DeepCopy ¶

func (in Tags) DeepCopy() Tags

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tags.

func (Tags) DeepCopyInto ¶

func (in Tags) DeepCopyInto(out *Tags)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tags) DeepEqual ¶

func (in *Tags) DeepEqual(other *Tags) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (Tags) Match ¶

func (t Tags) Match(required Tags) bool

Match returns true if the required tags are all found

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
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL