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
- Variables
- type ConfigMapKeySelector
- type ConnectivityStatus
- type ExportMetricSpec
- type IDSRuleSource
- type IdsRules
- type L2Network
- type L2NetworkList
- type L2NetworkSpec
- type L2NetworkStatus
- type Link
- type LinkStatus
- type MetricSpec
- type MetricValue
- type MonitorSpec
- type NeighborSpec
- type NetworkEdgeDevice
- type NetworkEdgeDeviceList
- type NetworkEdgeDeviceSpec
- type NetworkEdgeDeviceStatus
- type NetworkType
- type NodeConfigSpec
- type Overlay
- type OverlayList
- type OverlaySpec
- type OverlayStatus
- type ProviderSpec
- type SwitchPodSpec
- type SwitchTemplateSpec
- type TopologySpec
Constants ¶
const OVERLAY_PROVIDER = "l2sm-controller"
const SWM_METHOD = "codeco-swm"
const SWM_NT_NAMESPACE_OPTION = "nt_namespace"
Variables ¶
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
func (in *ConfigMapKeySelector) DeepCopy() *ConfigMapKeySelector
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdsRules.
func (*IdsRules) DeepCopyInto ¶ added in v1.2.13
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2Network.
func (*L2Network) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*L2Network) DeepCopyObject ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Link.
func (*Link) DeepCopyInto ¶
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 ¶
func (in *NetworkEdgeDeviceList) DeepCopy() *NetworkEdgeDeviceList
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 ¶
func (in *NetworkEdgeDeviceSpec) DeepCopy() *NetworkEdgeDeviceSpec
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 ¶
func (in *NetworkEdgeDeviceStatus) DeepCopy() *NetworkEdgeDeviceStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overlay.
func (*Overlay) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Overlay) DeepCopyObject ¶
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.