v1alpha1

package
v0.3.8 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Package v1alpha1 contains API Schema definitions for the networking v1alpha1 API group +kubebuilder:object:generate=true +groupName=networking.metalnet.ironcore.dev

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "networking.metalnet.ironcore.dev", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func EqualIPPrefixes

func EqualIPPrefixes(a, b IPPrefix) bool

func EqualIPs

func EqualIPs(a, b IP) bool

Types

type FirewallRule

type FirewallRule struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	FirewallRuleID types.UID `json:"firewallRuleID"`
	// +kubebuilder:validation:Required
	Direction FirewallRuleDirection `json:"direction"`
	// +kubebuilder:validation:Required
	Action FirewallRuleAction `json:"action"`
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=1000
	Priority          *int32          `json:"priority,omitempty"`
	IpFamily          corev1.IPFamily `json:"ipFamily"`
	SourcePrefix      *IPPrefix       `json:"sourcePrefix,omitempty"`
	DestinationPrefix *IPPrefix       `json:"destinationPrefix,omitempty"`
	ProtocolMatch     *ProtocolMatch  `json:"protocolMatch,omitempty"`
}

FirewallRule defines the desired state of FirewallRule

func (*FirewallRule) DeepCopy

func (in *FirewallRule) DeepCopy() *FirewallRule

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

func (*FirewallRule) DeepCopyInto

func (in *FirewallRule) DeepCopyInto(out *FirewallRule)

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

type FirewallRuleAction

type FirewallRuleAction string

FirewallRuleAction is the action of the rule.

const (
	// FirewallRuleActionAccept is used to accept traffic.
	FirewallRuleActionAccept FirewallRuleAction = "Accept"
	// FirewallRuleActionDeny is used to deny traffic.
	FirewallRuleActionDeny FirewallRuleAction = "Deny"
)

Currently only Accept rules can be used.

type FirewallRuleDirection

type FirewallRuleDirection string

FirewallRuleDirection is the direction of the rule.

const (
	// FirewallRuleDirectionIngress is used to define rules for incoming traffic.
	FirewallRuleDirectionIngress FirewallRuleDirection = "Ingress"
	// FirewallRuleDirectionEgress is used to define rules for outgoing traffic.
	FirewallRuleDirectionEgress FirewallRuleDirection = "Egress"
)

type ICMPMatch

type ICMPMatch struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=255
	IcmpType *int32 `json:"icmpType"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=255
	IcmpCode *int32 `json:"icmpCode"`
}

func (*ICMPMatch) DeepCopy

func (in *ICMPMatch) DeepCopy() *ICMPMatch

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

func (*ICMPMatch) DeepCopyInto

func (in *ICMPMatch) DeepCopyInto(out *ICMPMatch)

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

type IP

type IP struct {
	netip.Addr `json:"-"`
}

IP is an IP address. +kubebuilder:validation:Type=string

func MustParseIP

func MustParseIP(s string) IP

func MustParseNewIP

func MustParseNewIP(s string) *IP

func NewIP

func NewIP(ip netip.Addr) IP

func NewIPPtr

func NewIPPtr(ip netip.Addr) *IP

func ParseIP

func ParseIP(s string) (IP, error)

func ParseNewIP

func ParseNewIP(s string) (*IP, error)

func PtrToIP

func PtrToIP(addr IP) *IP

func (*IP) DeepCopy

func (in *IP) DeepCopy() *IP

func (*IP) DeepCopyInto

func (in *IP) DeepCopyInto(out *IP)

func (IP) Family

func (i IP) Family() corev1.IPFamily

func (IP) GomegaString

func (i IP) GomegaString() string

func (*IP) IsValid

func (i *IP) IsValid() bool

func (*IP) IsZero

func (i *IP) IsZero() bool

func (IP) MarshalJSON

func (i IP) MarshalJSON() ([]byte, error)

func (IP) OpenAPISchemaFormat

func (i IP) OpenAPISchemaFormat() string

func (IP) OpenAPISchemaType

func (i IP) OpenAPISchemaType() []string

func (IP) ToUnstructured

func (i IP) ToUnstructured() interface{}

func (*IP) UnmarshalJSON

func (i *IP) UnmarshalJSON(b []byte) error

type IPPrefix

type IPPrefix struct {
	netip.Prefix `json:"-"`
}

IPPrefix represents a network prefix. +kubebuilder:validation:Type=string +nullable

func MustParseIPPrefix

func MustParseIPPrefix(s string) IPPrefix

func MustParseNewIPPrefix

func MustParseNewIPPrefix(s string) *IPPrefix

func NewIPPrefix

func NewIPPrefix(prefix netip.Prefix) *IPPrefix

func ParseIPPrefix

func ParseIPPrefix(s string) (IPPrefix, error)

func ParseNewIPPrefix

func ParseNewIPPrefix(s string) (*IPPrefix, error)

func PtrToIPPrefix

func PtrToIPPrefix(prefix IPPrefix) *IPPrefix

func (*IPPrefix) DeepCopy

func (in *IPPrefix) DeepCopy() *IPPrefix

func (*IPPrefix) DeepCopyInto

func (in *IPPrefix) DeepCopyInto(out *IPPrefix)

func (IPPrefix) GomegaString

func (i IPPrefix) GomegaString() string

func (IPPrefix) IP

func (i IPPrefix) IP() IP

func (*IPPrefix) IsValid

func (in *IPPrefix) IsValid() bool

func (*IPPrefix) IsZero

func (in *IPPrefix) IsZero() bool

func (IPPrefix) MarshalJSON

func (i IPPrefix) MarshalJSON() ([]byte, error)

func (IPPrefix) OpenAPISchemaFormat

func (i IPPrefix) OpenAPISchemaFormat() string

func (IPPrefix) OpenAPISchemaType

func (i IPPrefix) OpenAPISchemaType() []string

func (IPPrefix) ToUnstructured

func (i IPPrefix) ToUnstructured() interface{}

func (*IPPrefix) UnmarshalJSON

func (i *IPPrefix) UnmarshalJSON(b []byte) error

type LBPort

type LBPort struct {
	// +kubebuilder:validation:Required
	Protocol string `json:"protocol"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`
}

LBPort consists of port and protocol

func (*LBPort) DeepCopy

func (in *LBPort) DeepCopy() *LBPort

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

func (*LBPort) DeepCopyInto

func (in *LBPort) DeepCopyInto(out *LBPort)

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

type LoadBalancer

type LoadBalancer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   LoadBalancerSpec   `json:"spec,omitempty"`
	Status LoadBalancerStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Status",type=string,description="Status of the loadbalancer.",JSONPath=`.status.state`,priority=0 +kubebuilder:printcolumn:name="NodeName",type=string,description="Node the loadbalancer is running on.",JSONPath=`.spec.nodeName`,priority=0 +kubebuilder:printcolumn:name="IP",type=string,description="IP of the loadbalancer.",JSONPath=`.spec.ip`,priority=10 +kubebuilder:printcolumn:name="Type",type=string,description="Type of the loadbalancer.",JSONPath=`.spec.type`,priority=10 +kubebuilder:printcolumn:name="Age",type=date,description="Age of the loadbalancer.",JSONPath=`.metadata.creationTimestamp`,priority=0 LoadBalancer is the Schema for the loadbalancers API

func (*LoadBalancer) DeepCopy

func (in *LoadBalancer) DeepCopy() *LoadBalancer

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

func (*LoadBalancer) DeepCopyInto

func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)

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

func (*LoadBalancer) DeepCopyObject

func (in *LoadBalancer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type LoadBalancerList

type LoadBalancerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []LoadBalancer `json:"items"`
}

LoadBalancerList contains a list of LoadBalancer

func (*LoadBalancerList) DeepCopy

func (in *LoadBalancerList) DeepCopy() *LoadBalancerList

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

func (*LoadBalancerList) DeepCopyInto

func (in *LoadBalancerList) DeepCopyInto(out *LoadBalancerList)

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

func (*LoadBalancerList) DeepCopyObject

func (in *LoadBalancerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type LoadBalancerSpec

type LoadBalancerSpec struct {
	// NetworkRef is the Network this LoadBalancer is connected to
	// +kubebuilder:validation:Required
	NetworkRef corev1.LocalObjectReference `json:"networkRef"`
	// Type defines whether the loadbalancer is using an internal or public ip
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=Internal;Public
	LBtype LoadBalancerType `json:"type"`
	// IPFamily defines which IPFamily this LoadBalancer is supporting
	IPFamily corev1.IPFamily `json:"ipFamily"`
	// IP is the provided IP which should be loadbalanced by this LoadBalancer
	// +kubebuilder:validation:Required
	IP IP `json:"ip"`
	// Ports are the provided ports
	// +kubebuilder:validation:MinItems=1
	Ports []LBPort `json:"ports"`
	// NodeName is the name of the node on which the LoadBalancer should be created.
	NodeName *string `json:"nodeName,omitempty"`
}

LoadBalancerSpec defines the desired state of LoadBalancer

func (*LoadBalancerSpec) DeepCopy

func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec

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

func (*LoadBalancerSpec) DeepCopyInto

func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)

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

type LoadBalancerState

type LoadBalancerState string

LoadBalancerState is the binding state of a LoadBalancer.

const (
	// LoadBalancerStateReady is used for any LoadBalancer that is ready.
	LoadBalancerStateReady LoadBalancerState = "Ready"
	// LoadBalancerStatePending is used for any LoadBalancer that is in an intermediate state.
	LoadBalancerStatePending LoadBalancerState = "Pending"
	// LoadBalancerStateError is used for any LoadBalancer that is some error occurred.
	LoadBalancerStateError LoadBalancerState = "Error"
)

type LoadBalancerStatus

type LoadBalancerStatus struct {
	// State is the LoadBalancerState of the LoadBalancer.
	State LoadBalancerState `json:"state,omitempty"`
}

LoadBalancerStatus defines the observed state of LoadBalancer

func (*LoadBalancerStatus) DeepCopy

func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus

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

func (*LoadBalancerStatus) DeepCopyInto

func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus)

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

type LoadBalancerType

type LoadBalancerType string

LoadBalancerType is the type of a LoadBalancer.

const (
	// LoadBalancerTypeInternal is used for any LoadBalancer that uses private IPs.
	LoadBalancerTypeInternal LoadBalancerType = "Internal"
	// LoadBalancerTypePublic is used for any LoadBalancer that uses public IPs.
	LoadBalancerTypePublic LoadBalancerType = "Public"
)

type LocalUIDReference

type LocalUIDReference struct {
	// Name is the name of the referenced entity.
	Name string `json:"name"`
	// UID is the UID of the referenced entity.
	// +optional
	UID types.UID `json:"uid,omitempty"`
}

LocalUIDReference is a reference to another entity including its UID

func (*LocalUIDReference) DeepCopy

func (in *LocalUIDReference) DeepCopy() *LocalUIDReference

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

func (*LocalUIDReference) DeepCopyInto

func (in *LocalUIDReference) DeepCopyInto(out *LocalUIDReference)

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

type MeteringParameters added in v0.3.1

type MeteringParameters struct {
	TotalRate  *uint64 `json:"totalRate,omitempty"`
	PublicRate *uint64 `json:"publicRate,omitempty"`
}

func (*MeteringParameters) DeepCopy added in v0.3.1

func (in *MeteringParameters) DeepCopy() *MeteringParameters

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

func (*MeteringParameters) DeepCopyInto added in v0.3.1

func (in *MeteringParameters) DeepCopyInto(out *MeteringParameters)

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

type NATDetails

type NATDetails struct {
	// +kubebuilder:validation:Required
	IP *IP `json:"ip"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	EndPort int32 `json:"endPort"`
}

LBPort consists of port and protocol

func (*NATDetails) DeepCopy

func (in *NATDetails) DeepCopy() *NATDetails

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

func (*NATDetails) DeepCopyInto

func (in *NATDetails) DeepCopyInto(out *NATDetails)

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

type Network

type Network struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:validation:Required
	Spec NetworkSpec `json:"spec"`
}

Network is the Schema for the networks API

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

func (*Network) DeepCopyObject

func (in *Network) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkInterface

type NetworkInterface struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of NetworkInterface.
	// +kubebuilder:validation:Required
	Spec NetworkInterfaceSpec `json:"spec"`
	// Status defines the observed state of NetworkInterface.
	Status NetworkInterfaceStatus `json:"status,omitempty"`
}

NetworkInterface is the Schema for the networkinterfaces API

func (*NetworkInterface) DeepCopy

func (in *NetworkInterface) DeepCopy() *NetworkInterface

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

func (*NetworkInterface) DeepCopyInto

func (in *NetworkInterface) DeepCopyInto(out *NetworkInterface)

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

func (*NetworkInterface) DeepCopyObject

func (in *NetworkInterface) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkInterfaceList

type NetworkInterfaceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is a list of NetworkInterface.
	Items []NetworkInterface `json:"items"`
}

NetworkInterfaceList contains a list of NetworkInterface

func (*NetworkInterfaceList) DeepCopy

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

func (*NetworkInterfaceList) DeepCopyInto

func (in *NetworkInterfaceList) DeepCopyInto(out *NetworkInterfaceList)

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

func (*NetworkInterfaceList) DeepCopyObject

func (in *NetworkInterfaceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkInterfaceSpec

type NetworkInterfaceSpec struct {
	// NetworkRef is the Network this NetworkInterface is connected to
	// +kubebuilder:validation:Required
	NetworkRef corev1.LocalObjectReference `json:"networkRef"`
	// IPFamilies defines which IPFamilies this NetworkInterface is supporting
	// Only one IP supported at the moment.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=2
	IPFamilies []corev1.IPFamily `json:"ipFamilies"`
	// IPs are the provided IPs or EphemeralIPs which should be assigned to this NetworkInterface
	// Only one IP supported at the moment.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=2
	IPs []IP `json:"ips"`
	// Virtual IP
	VirtualIP *IP `json:"virtualIP,omitempty"`
	// Prefixes are the provided Prefix
	Prefixes []IPPrefix `json:"prefixes,omitempty"`
	// Loadbalancer Targets are the provided Prefix
	LoadBalancerTargets []IPPrefix `json:"loadBalancerTargets,omitempty"`
	// NATInfo is detailed information about the NAT on this interface
	NAT *NATDetails `json:"nat,omitempty"`
	// NodeName is the name of the node on which the interface should be created.
	NodeName *string `json:"nodeName,omitempty"`
	// FirewallRules are the firewall rules to be applied to this interface.
	FirewallRules []FirewallRule `json:"firewallRules,omitempty"`
	// MeteringRate are the metering parameters to be applied to this interface.
	MeteringRate *MeteringParameters `json:"meteringRate,omitempty"`
}

NetworkInterfaceSpec defines the desired state of NetworkInterface

func (*NetworkInterfaceSpec) DeepCopy

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

func (*NetworkInterfaceSpec) DeepCopyInto

func (in *NetworkInterfaceSpec) DeepCopyInto(out *NetworkInterfaceSpec)

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

type NetworkInterfaceState

type NetworkInterfaceState string

NetworkInterfaceState is the binding state of a NetworkInterface.

const (
	// NetworkInterfaceStateReady is used for any NetworkInterface that is ready.
	NetworkInterfaceStateReady NetworkInterfaceState = "Ready"
	// NetworkInterfaceStatePending is used for any NetworkInterface that is in an intermediate state.
	NetworkInterfaceStatePending NetworkInterfaceState = "Pending"
	// NetworkInterfaceStateError is used for any NetworkInterface that is some error occurred.
	NetworkInterfaceStateError NetworkInterfaceState = "Error"
)

type NetworkInterfaceStatus

type NetworkInterfaceStatus struct {
	PCIAddress *PCIAddress `json:"pciAddress,omitempty"`

	// VirtualIP is any virtual ip assigned to the NetworkInterface.
	VirtualIP *IP `json:"virtualIP,omitempty"`

	// NatIP is detailed information about the NAT on this interface
	NatIP *NATDetails `json:"natIP,omitempty"`

	// Prefixes are the Prefixes reserved for this NetworkInterface
	Prefixes []IPPrefix `json:"prefixes,omitempty"`

	// LoadBalancerTargets are the Targets reserved for this NetworkInterface
	LoadBalancerTargets []IPPrefix `json:"loadBalancerTargets,omitempty"`

	// State is the NetworkInterfaceState of the NetworkInterface.
	State NetworkInterfaceState `json:"state,omitempty"`
}

NetworkInterfaceStatus defines the observed state of NetworkInterface

func (*NetworkInterfaceStatus) DeepCopy

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

func (*NetworkInterfaceStatus) DeepCopyInto

func (in *NetworkInterfaceStatus) DeepCopyInto(out *NetworkInterfaceStatus)

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

type NetworkList

type NetworkList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Network `json:"items"`
}

NetworkList contains a list of Network

func (*NetworkList) DeepCopy

func (in *NetworkList) DeepCopy() *NetworkList

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

func (*NetworkList) DeepCopyInto

func (in *NetworkList) DeepCopyInto(out *NetworkList)

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

func (*NetworkList) DeepCopyObject

func (in *NetworkList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkSpec

type NetworkSpec struct {
	// +kubebuilder:validation:Maximum=16777215
	// +kubebuilder:validation:Minimum=1
	// ID is the unique identifier of the Network
	ID int32 `json:"id"`

	// PeeredIDs are the IDs of networks to peer with.
	PeeredIDs []int32 `json:"peeredIDs,omitempty"`

	// PeeredPrefixes are the allowed CIDRs of the peered networks.
	// +optional
	// +patchMergeKey=id
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=id
	PeeredPrefixes []PeeredPrefix `json:"peeredPrefixes,omitempty" patchStrategy:"merge" patchMergeKey:"peeredPrefixes"`
}

NetworkSpec defines the desired state of Network

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

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

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

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

type PCIAddress

type PCIAddress struct {
	Domain   string `json:"domain,omitempty"`
	Bus      string `json:"bus,omitempty"`
	Slot     string `json:"slot,omitempty"`
	Function string `json:"function,omitempty"`
}

PCIAddress is a PCI address.

func (*PCIAddress) DeepCopy

func (in *PCIAddress) DeepCopy() *PCIAddress

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

func (*PCIAddress) DeepCopyInto

func (in *PCIAddress) DeepCopyInto(out *PCIAddress)

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

type PeeredPrefix

type PeeredPrefix struct {
	// +kubebuilder:validation:Maximum=16777215
	// +kubebuilder:validation:Minimum=1
	ID       int32      `json:"id"`
	Prefixes []IPPrefix `json:"prefixes"`
}

PeeredPrefix contains information of the peered networks and their allowed CIDRs.

func (*PeeredPrefix) DeepCopy

func (in *PeeredPrefix) DeepCopy() *PeeredPrefix

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

func (*PeeredPrefix) DeepCopyInto

func (in *PeeredPrefix) DeepCopyInto(out *PeeredPrefix)

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

type PortMatch

type PortMatch struct {
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=65535
	SrcPort *int32 `json:"srcPort,omitempty"`
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=65535
	EndSrcPort int32 `json:"endSrcPort,omitempty"`
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=65535
	DstPort *int32 `json:"dstPort,omitempty"`
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=65535
	EndDstPort int32 `json:"endDstPort,omitempty"`
}

func (*PortMatch) DeepCopy

func (in *PortMatch) DeepCopy() *PortMatch

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

func (*PortMatch) DeepCopyInto

func (in *PortMatch) DeepCopyInto(out *PortMatch)

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

type ProtocolMatch

type ProtocolMatch struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=TCP;tcp;UDP;udp;ICMP;icmp
	ProtocolType *ProtocolType `json:"protocolType"`
	ICMP         *ICMPMatch    `json:"icmp,omitempty"`
	PortRange    *PortMatch    `json:"portRange,omitempty"`
}

func (*ProtocolMatch) DeepCopy

func (in *ProtocolMatch) DeepCopy() *ProtocolMatch

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

func (*ProtocolMatch) DeepCopyInto

func (in *ProtocolMatch) DeepCopyInto(out *ProtocolMatch)

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

type ProtocolType

type ProtocolType string

ProtocolType is the type for the network protocol

const (
	// FirewallRuleProtocolTypeTCP is used for TCP traffic.
	FirewallRuleProtocolTypeTCP ProtocolType = "TCP"
	// FirewallRuleProtocolTypeUDP is used for UDP traffic.
	FirewallRuleProtocolTypeUDP ProtocolType = "UDP"
	// FirewallRuleProtocolTypeICMP is used for ICMP traffic.
	FirewallRuleProtocolTypeICMP ProtocolType = "ICMP"
)

Jump to

Keyboard shortcuts

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