types

package
v1.16.1 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2024 License: Apache-2.0 Imports: 4 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

func (*IPAMPodCIDR) ToPrefix added in v1.15.0

func (c *IPAMPodCIDR) ToPrefix() (*netip.Prefix, error)

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

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

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

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

	// AvailableIPv6s is the number of available IPv6 addresses in the pool
	AvailableIPv6s 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 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

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

	// 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.

Jump to

Keyboard shortcuts

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