v1

package
v1.2.13 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2026 License: Apache-2.0 Imports: 5 Imported by: 1

Documentation

Overview

Package v1 contains API Schema definitions for the l2sm v1 API group +kubebuilder:object:generate=true +groupName=l2sm.l2sm.k8s.local

Index

Constants

View Source
const OVERLAY_PROVIDER = "l2sm-controller"
View Source
const SWM_METHOD = "codeco-swm"
View Source
const SWM_NT_NAMESPACE_OPTION = "nt_namespace"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "l2sm.l2sm.k8s.local", Version: "v1"}

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

This section is empty.

Types

type ConfigMapKeySelector added in v1.2.13

type ConfigMapKeySelector struct {
	// Name of the ConfigMap.
	Name string `json:"name"`
	// Key within the ConfigMap that contains the script (e.g., "measure.sh").
	Key string `json:"key"`
}

ConfigMapKeySelector selects a key from a ConfigMap.

func (*ConfigMapKeySelector) DeepCopy added in v1.2.13

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

func (*ConfigMapKeySelector) DeepCopyInto added in v1.2.13

func (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector)

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

type ConnectivityStatus

type ConnectivityStatus string

+kubebuilder:validation:Enum=Available;Unavailable;Unknown

const (
	OnlineStatus  ConnectivityStatus = "Available"
	OfflineStatus ConnectivityStatus = "Unavailable"
	UnknownStatus ConnectivityStatus = "Unknown"
)

type ExportMetricSpec added in v1.2.13

type ExportMetricSpec struct {
	// Method to export the metrics. Reserved names include: "codeco-swm", which includes an interface for the
	// codeco swm crd. Interface must be implemented
	// for the method, so this must be designed beforehand.
	//+kubebuilder:default="default"
	Method string `json:"method,omitempty"`

	//+kubebuilder:default:="default"
	ServiceAccount string `json:"serviceAccount,omitempty"`

	// Additional configuration parameters that may be set by developer to implement different kinds
	// of flexible key-value pairs. In the case of the codeco-swm, "namespace" is included.
	Config map[string]string `json:"config,omitempty"`
}

func (*ExportMetricSpec) DeepCopy added in v1.2.13

func (in *ExportMetricSpec) DeepCopy() *ExportMetricSpec

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

func (*ExportMetricSpec) DeepCopyInto added in v1.2.13

func (in *ExportMetricSpec) DeepCopyInto(out *ExportMetricSpec)

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

type IDSRuleSource added in v1.2.12

type IDSRuleSource struct {
	// Name is a friendly identifier for this rule set
	Name string `json:"name"`

	// URL allows fetching a remote ruleset (e.g., specific version of ET Open).
	// The controller will need logic to download and cache this.
	// +optional
	URL string `json:"url,omitempty"`

	// Inline allows the user to paste a raw Suricata rule directly in the YAML.
	// Example: "alert tcp any any -> any 80 (msg:\"test rule\"; sid:100001; rev:1;)"
	// +optional
	Inline string `json:"inline,omitempty"`

	// ConfigMapRef allows loading rules from a Kubernetes ConfigMap.
	// Useful for large, organization-specific rule sets managed separately.
	// +optional
	ConfigMapRef *corev1.LocalObjectReference `json:"configMapRef,omitempty"`
}

IDSRuleSource defines where the IDS should fetch signatures from.

func (*IDSRuleSource) DeepCopy added in v1.2.13

func (in *IDSRuleSource) DeepCopy() *IDSRuleSource

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

func (*IDSRuleSource) DeepCopyInto added in v1.2.13

func (in *IDSRuleSource) DeepCopyInto(out *IDSRuleSource)

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

type IdsRules added in v1.2.12

type IdsRules struct {
	// Enabled allows toggling the IDS on/off without deleting the config.
	// +kubebuilder:default:=true
	Enabled bool `json:"enabled"`

	// HomeNetCIDR overrides the SURICATA $HOME_NET variable.
	// If empty, the controller should default this to the L2Network's NetworkCIDR.
	// +optional
	HomeNetCIDR []string `json:"homeNetCidr,omitempty"`

	// UseEmergingThreatsOpen is a high-level boolean to automatically enable
	// the standard "ET Open" ruleset without needing to manually configure URLs.
	// +kubebuilder:default:=true
	UseEmergingThreatsOpen bool `json:"useEmergingThreatsOpen"`

	// CustomRuleSources allows adding specific rule files or inline rules.
	// +optional
	CustomRuleSources []IDSRuleSource `json:"customRuleSources,omitempty"`

	// IgnorePorts allows whitelisting specific traffic flow from inspection
	// to improve performance or reduce false positives (BPF Filter generation).
	// +optional
	IgnorePorts []int32 `json:"ignorePorts,omitempty"`
}

IdsRules defines the configuration for the Intrusion Detection System

func (*IdsRules) DeepCopy added in v1.2.13

func (in *IdsRules) DeepCopy() *IdsRules

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

func (*IdsRules) DeepCopyInto added in v1.2.13

func (in *IdsRules) DeepCopyInto(out *IdsRules)

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

type L2Network

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

	Spec   L2NetworkSpec   `json:"spec,omitempty"`
	Status L2NetworkStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="AVAILABILITY",type="string",JSONPath=".status.internalConnectivity",description="Internal SDN Controller Connectivity" +kubebuilder:printcolumn:name="CONNECTED_PODS",type="integer",JSONPath=".status.connectedPodCount",description="Number of pods in the network" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" L2Network is the Schema for the l2networks API

func (*L2Network) DeepCopy

func (in *L2Network) DeepCopy() *L2Network

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

func (*L2Network) DeepCopyInto

func (in *L2Network) DeepCopyInto(out *L2Network)

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

func (*L2Network) DeepCopyObject

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

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

type L2NetworkList

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

L2NetworkList contains a list of L2Network

func (*L2NetworkList) DeepCopy

func (in *L2NetworkList) DeepCopy() *L2NetworkList

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

func (*L2NetworkList) DeepCopyInto

func (in *L2NetworkList) DeepCopyInto(out *L2NetworkList)

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

func (*L2NetworkList) DeepCopyObject

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

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

type L2NetworkSpec

type L2NetworkSpec struct {

	// NetworkType represents the type of network being configured.
	Type NetworkType `json:"type"`

	// Config is an optional field that is meant to be used as additional configuration depending on the type of network. Check each type of network for specific configuration definitions.
	Config *string `json:"config,omitempty"`

	// Provider is an optional field representing a provider spec. Check the provider spec definition for more details
	Provider *ProviderSpec `json:"provider,omitempty"`

	// NetworkCIDR defines the overall network CIDR used for routing pod interfaces.
	// This value represents the broader network segment that encompasses all pod IPs,
	// e.g. 10.101.0.0/16.
	NetworkCIDR string `json:"networkCIDR,omitempty"`

	// PodAddressRange specifies the specific pool of IP addresses that can be assigned to pods.
	// This range should be a subset of the overall network CIDR, e.g. 10.101.2.0/24.
	PodAddressRange string `json:"podAddressRange,omitempty"`

	// Ids configures the intrusion detection system.
	// +optional
	Ids *IdsRules `json:"ids,omitempty"`
}

L2NetworkSpec defines the desired state of L2Network

func (*L2NetworkSpec) DeepCopy

func (in *L2NetworkSpec) DeepCopy() *L2NetworkSpec

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

func (*L2NetworkSpec) DeepCopyInto

func (in *L2NetworkSpec) DeepCopyInto(out *L2NetworkSpec)

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

type L2NetworkStatus

type L2NetworkStatus struct {

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=0
	ConnectedPodCount int `json:"connectedPodCount,omitempty"`
	// Last assigned IP, used for sequential allocation
	LastAssignedIP string `json:"lastAssignedIP,omitempty"`

	// Existing Pods in the network
	AssignedIPs map[string]string `json:"assignedIPs,omitempty"`

	// Status of the connectivity to the internal SDN Controller. If there is no connection, internal l2sm-switches won't forward traffic
	// +kubebuilder:default=Unavailable
	InternalConnectivity *ConnectivityStatus `json:"internalConnectivity"`

	// Status of the connectivity to the external provider SDN Controller. If there is no connectivity, the exisitng l2sm-ned in the cluster won't forward packages to the external clusters.
	ProviderConnectivity *ConnectivityStatus `json:"providerConnectivity,omitempty"`
}

L2NetworkStatus defines the observed state of L2Network

func (*L2NetworkStatus) DeepCopy

func (in *L2NetworkStatus) DeepCopy() *L2NetworkStatus

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

func (*L2NetworkStatus) DeepCopyInto

func (in *L2NetworkStatus) DeepCopyInto(out *L2NetworkStatus)

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

type Link struct {
	// EndpointA is the name of the first node in the link.
	EndpointA string `json:"endpointA"`
	// EndpointB is the name of the second node in the link.
	EndpointB string `json:"endpointB"`
}

Link represents a bidirectional connection between two nodes in the topology.

func (*Link) DeepCopy

func (in *Link) DeepCopy() *Link

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

func (*Link) DeepCopyInto

func (in *Link) DeepCopyInto(out *Link)

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

type LinkStatus added in v1.2.13

type LinkStatus struct {
	// SourceNode is the name of the node where the measurement originated.
	SourceNode string `json:"sourceNode"`

	// TargetNode is the name of the neighbor node being measured.
	TargetNode string `json:"targetNode"`

	// Status indicates if the link is "Up", "Down", or "Degraded".
	Status string `json:"status"`

	// Metrics contains the list of latest measurements for this link.
	Metrics []MetricValue `json:"metrics,omitempty"`
}

LinkStatus defines the observed state of a specific link between two nodes.

func (*LinkStatus) DeepCopy added in v1.2.13

func (in *LinkStatus) DeepCopy() *LinkStatus

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

func (*LinkStatus) DeepCopyInto added in v1.2.13

func (in *LinkStatus) DeepCopyInto(out *LinkStatus)

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

type MetricSpec added in v1.2.13

type MetricSpec struct {
	// Name identifies the metric.
	// Reserved names: "rtt", "jitter", "throughput".
	// If a reserved name is used, the internal Go implementation is used by default.
	// If a custom name is used, 'scriptSource' is required.
	Name string `json:"name"`

	// Interval specifies the time in minutes between measurements.
	// If not set (nil), the metric runs in "continuous mode", consuming the live stream of the measurement tool.
	// +optional
	Interval *int `json:"interval,omitempty"`

	// ScriptSource points to a ConfigMap containing a shell script to execute for this metric.
	// If provided, this script overrides the internal implementation (even for reserved names).
	// The script must print the measurement value to stdout.
	// +optional
	ScriptSource *ConfigMapKeySelector `json:"scriptSource,omitempty"`
}

Metric defines a specific network measurement task.

func (*MetricSpec) DeepCopy added in v1.2.13

func (in *MetricSpec) DeepCopy() *MetricSpec

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

func (*MetricSpec) DeepCopyInto added in v1.2.13

func (in *MetricSpec) DeepCopyInto(out *MetricSpec)

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

type MetricValue added in v1.2.13

type MetricValue struct {
	// Name of the metric (e.g., "rtt", "jitter", "custom-loss").
	Name string `json:"name"`

	// Value is the latest measurement as a float (e.g., 12.5).
	Value string `json:"value"`
}

MetricValue holds the latest measurement for a specific metric.

func (*MetricValue) DeepCopy added in v1.2.13

func (in *MetricValue) DeepCopy() *MetricValue

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

func (*MetricValue) DeepCopyInto added in v1.2.13

func (in *MetricValue) DeepCopyInto(out *MetricValue)

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

type MonitorSpec added in v1.2.13

type MonitorSpec struct {
	// Metrics is the list of measurements to perform on the overlay network.
	// Supports built-in metrics (rtt, jitter, throughput) and custom script-based metrics.
	Metrics []MetricSpec `json:"metrics"`

	// SpreadFactor determines how metric execution is distributed over time to avoid congestion.
	// A higher value spreads execution more widely.
	// +kubebuilder:default:="0.2"
	SpreadFactor string `json:"spreadFactor,omitempty"`

	ExportMetrics *ExportMetricSpec `json:"exportMetric,omitempty"`

	NetworkCIDR *string `json:"networkCIDR,omitempty"`
	IpCIDR      *string `json:"ipCIDR,omitempty"`
}

MonitorSpec configures the L2S-M Performance Measurement module.

func (*MonitorSpec) DeepCopy added in v1.2.13

func (in *MonitorSpec) DeepCopy() *MonitorSpec

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

func (*MonitorSpec) DeepCopyInto added in v1.2.13

func (in *MonitorSpec) DeepCopyInto(out *MonitorSpec)

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

type NeighborSpec

type NeighborSpec struct {

	// Name of the cluster the link is going to be made upon.
	Node string `json:"node"`

	// Domain where the neighbor's NED switch can be reached at. Must be a valid IP Address or Domain name, reachable from the node the NED
	// is going to be deployed at.
	Domain string `json:"domain"`

	// only used in monitoring mode. Ip address for network edge device probing interface
	LpmIp *string `json:"lpmIp,omitempty"`
}

func (*NeighborSpec) DeepCopy

func (in *NeighborSpec) DeepCopy() *NeighborSpec

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

func (*NeighborSpec) DeepCopyInto

func (in *NeighborSpec) DeepCopyInto(out *NeighborSpec)

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

type NetworkEdgeDevice

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

	Spec   NetworkEdgeDeviceSpec   `json:"spec,omitempty"`
	Status NetworkEdgeDeviceStatus `json:"status,omitempty"`
}

NetworkEdgeDevice is the Schema for the networkedgedevices API +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.availability",description="Availability status of the overlay" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*NetworkEdgeDevice) DeepCopy

func (in *NetworkEdgeDevice) DeepCopy() *NetworkEdgeDevice

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

func (*NetworkEdgeDevice) DeepCopyInto

func (in *NetworkEdgeDevice) DeepCopyInto(out *NetworkEdgeDevice)

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

func (*NetworkEdgeDevice) DeepCopyObject

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

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

type NetworkEdgeDeviceList

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

NetworkEdgeDeviceList contains a list of NetworkEdgeDevice

func (*NetworkEdgeDeviceList) DeepCopy

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

func (*NetworkEdgeDeviceList) DeepCopyInto

func (in *NetworkEdgeDeviceList) DeepCopyInto(out *NetworkEdgeDeviceList)

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

func (*NetworkEdgeDeviceList) DeepCopyObject

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

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

type NetworkEdgeDeviceSpec

type NetworkEdgeDeviceSpec struct {

	// The SDN Controller that manages the overlay network. Must specify a domain and a name.
	Provider *ProviderSpec `json:"provider"`

	// Node Configuration
	NodeConfig *NodeConfigSpec `json:"nodeConfig,omitempty"`

	// Field exclusive to the multi-domain overlay type. If specified in other  types of overlays, the reosurce will launch an error and won't be created.
	Neighbors []NeighborSpec `json:"neighbors,omitempty"`

	// Template describes the virtual switch pod that will be created.
	SwitchTemplate *SwitchTemplateSpec `json:"switchTemplate,omitempty"`

	// Monitor enables the performance measurement probing mechanism.
	// If omitted, no metrics are collected.
	// +optional
	Monitor *MonitorSpec `json:"monitor,omitempty"`
}

NetworkEdgeDeviceSpec defines the desired state of NetworkEdgeDevice

func (*NetworkEdgeDeviceSpec) DeepCopy

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

func (*NetworkEdgeDeviceSpec) DeepCopyInto

func (in *NetworkEdgeDeviceSpec) DeepCopyInto(out *NetworkEdgeDeviceSpec)

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

type NetworkEdgeDeviceStatus

type NetworkEdgeDeviceStatus struct {

	// Status of the overlay. Is available when switches are connected between them and with the network Controller.
	// +kubebuilder:default=Unavailable
	Availability *ConnectivityStatus `json:"availability"`

	ConnectedNeighbors []NeighborSpec `json:"connectedNeighbors,omitempty"`

	OpenflowId string `json:"openflowId,omitempty"`

	// LinkMetrics holds the performance data for every monitored link.
	// +optional
	LinkMetrics *[]LinkStatus `json:"linkMetrics,omitempty"`
}

NetworkEdgeDeviceStatus defines the observed state of NetworkEdgeDevice

func (*NetworkEdgeDeviceStatus) DeepCopy

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

func (*NetworkEdgeDeviceStatus) DeepCopyInto

func (in *NetworkEdgeDeviceStatus) DeepCopyInto(out *NetworkEdgeDeviceStatus)

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

type NetworkType

type NetworkType string

NetworkType represents the type of network being configured. +kubebuilder:validation:Enum=ext-vnet;vnet;vlink +kubebuilder:pruning:PreserveUnknownFields

const (
	NetworkTypeExtVnet NetworkType = "ext-vnet"
	NetworkTypeVnet    NetworkType = "vnet"
	NetworkTypeVlink   NetworkType = "vlink"
)

type NodeConfigSpec

type NodeConfigSpec struct {
	NodeName string `json:"nodeName"`

	IPAddress string `json:"ipAddress"`
}

func (*NodeConfigSpec) DeepCopy

func (in *NodeConfigSpec) DeepCopy() *NodeConfigSpec

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

func (*NodeConfigSpec) DeepCopyInto

func (in *NodeConfigSpec) DeepCopyInto(out *NodeConfigSpec)

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

type Overlay

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

	Spec   OverlaySpec   `json:"spec,omitempty"`
	Status OverlayStatus `json:"status,omitempty"`
}

Overlay is the Schema for the overlays API

func (*Overlay) DeepCopy

func (in *Overlay) DeepCopy() *Overlay

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

func (*Overlay) DeepCopyInto

func (in *Overlay) DeepCopyInto(out *Overlay)

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

func (*Overlay) DeepCopyObject

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

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

type OverlayList

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

OverlayList contains a list of Overlay

func (*OverlayList) DeepCopy

func (in *OverlayList) DeepCopy() *OverlayList

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

func (*OverlayList) DeepCopyInto

func (in *OverlayList) DeepCopyInto(out *OverlayList)

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

func (*OverlayList) DeepCopyObject

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

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

type OverlaySpec

type OverlaySpec struct {

	// The SDN Controller that manages the overlay network. Must specify a domain and a name.
	Provider *ProviderSpec `json:"provider"`

	// Topology represents the desired topology, it's represented by the 'Nodes' field, a list of nodes where the switches are going to be deployed and a list of bidirectional links,
	// selecting the nodes that are going to be linked.
	Topology *TopologySpec `json:"topology,omitempty"`

	// Template describes the virtual switch pod that will be created.
	SwitchTemplate *SwitchTemplateSpec `json:"switchTemplate,omitempty"`

	// Interface number specifies how many interfaces the switch should have predefined (if used with multus)
	//+kubebuilder:default:value=10
	InterfaceNumber int `json:"interfaceNumber,omitempty"`

	// Monitor enables the performance measurement probing mechanism.
	// If omitted, no metrics are collected.
	// +optional
	Monitor *MonitorSpec `json:"monitor,omitempty"`
}

OverlaySpec defines the desired state of Overlay

func (*OverlaySpec) DeepCopy

func (in *OverlaySpec) DeepCopy() *OverlaySpec

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

func (*OverlaySpec) DeepCopyInto

func (in *OverlaySpec) DeepCopyInto(out *OverlaySpec)

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

type OverlayStatus

type OverlayStatus struct {
	// LinkMetrics holds the performance data for every monitored link.
	// +optional
	LinkMetrics *[]LinkStatus `json:"linkMetrics,omitempty"`
}

OverlayStatus defines the observed state of Overlay

func (*OverlayStatus) DeepCopy

func (in *OverlayStatus) DeepCopy() *OverlayStatus

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

func (*OverlayStatus) DeepCopyInto

func (in *OverlayStatus) DeepCopyInto(out *OverlayStatus)

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

type ProviderSpec

type ProviderSpec struct {
	Name   string   `json:"name"`
	Domain []string `json:"domain"`

	//+kubebuilder:default:value="30808"
	SDNPort string `json:"sdnPort,omitempty"`

	// DNS service configuration
	//+kubebuilder:default:="30053"
	// DNS protocol port (used for DNS queries via tools like dig)
	DNSPort string `json:"dnsPort,omitempty"`

	//+kubebuilder:default:="30818"
	// gRPC management port for DNS service (used for adding/modifying DNS entries)
	DNSGRPCPort string `json:"dnsGrpcPort,omitempty"`

	//+kubebuilder:default:value="6633"
	OFPort string `json:"ofPort,omitempty"`
}

ProviderSpec defines the provider's name and domain. This is used in the inter-cluster scenario, to allow managing of the network in the external environment by this certified SDN provider.

func (*ProviderSpec) DeepCopy

func (in *ProviderSpec) DeepCopy() *ProviderSpec

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

func (*ProviderSpec) DeepCopyInto

func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec)

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

type SwitchPodSpec

type SwitchPodSpec struct {
	// List of volumes that can be mounted by containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	// +listType=map
	// +listMapKey=name
	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name" protobuf:"bytes,1,rep,name=volumes"`
	// List of initialization containers belonging to the pod.
	// Init containers are executed in order prior to containers being started. If any
	// init container fails, the pod is considered to have failed and is handled according
	// to its restartPolicy. The name for an init container or normal container must be
	// unique among all containers.
	// Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
	// The resourceRequirements of an init container are taken into account during scheduling
	// by finding the highest request/limit for each resource type, and then using the max of
	// of that value or the sum of the normal containers. Limits are applied to init containers
	// in a similar fashion.
	// Init containers cannot currently be added or removed.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=name
	InitContainers []corev1.Container `json:"initContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,20,rep,name=initContainers"`
	// List of containers belonging to the pod.
	// Containers cannot currently be added or removed.
	// There must be at least one container in a Pod.
	// Cannot be updated.
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=name
	Containers []corev1.Container `json:"containers" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=containers"`
	// Host networking requested for this pod. Use the host's network namespace.
	// If this option is set, the ports that will be used must be specified.
	// Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostNetwork bool `json:"hostNetwork,omitempty" protobuf:"varint,11,opt,name=hostNetwork"`
}

func (*SwitchPodSpec) DeepCopy

func (in *SwitchPodSpec) DeepCopy() *SwitchPodSpec

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

func (*SwitchPodSpec) DeepCopyInto

func (in *SwitchPodSpec) DeepCopyInto(out *SwitchPodSpec)

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

type SwitchTemplateSpec

type SwitchTemplateSpec struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired behavior of the pod.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Spec SwitchPodSpec `json:"spec,omitempty"`
}

func (*SwitchTemplateSpec) DeepCopy

func (in *SwitchTemplateSpec) DeepCopy() *SwitchTemplateSpec

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

func (*SwitchTemplateSpec) DeepCopyInto

func (in *SwitchTemplateSpec) DeepCopyInto(out *SwitchTemplateSpec)

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

type TopologySpec

type TopologySpec struct {
	// Nodes is a list of node names where switches will be deployed.
	Nodes []string `json:"nodes"`
	// Links is a list of connections between the defined nodes.
	Links []Link `json:"links,omitempty"`
}

TopologySpec defines the physical or logical structure of the network.

func (*TopologySpec) DeepCopy

func (in *TopologySpec) DeepCopy() *TopologySpec

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

func (*TopologySpec) DeepCopyInto

func (in *TopologySpec) DeepCopyInto(out *TopologySpec)

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

Jump to

Keyboard shortcuts

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