v1

package
v1.2.8 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

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

This section is empty.

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 ConnectivityStatus

type ConnectivityStatus string

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

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

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.connectedPods",description="Internal SDN Controller Connectivity" +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"`
}

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 {

	// Existing Pods in the cluster, connected to the specific network
	ConnectedPods []string `json:"connectedPods,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 string `json:"endpointA"`
	EndpointB string `json:"endpointB"`
}

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 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"`
}

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 NetworkControllerSpec

type NetworkControllerSpec struct {

	// Name of the Network controller
	Name string `json:"name"`

	// Domain where the controller can be reached at. Must be a valid IP Address or Domain name, reachable from all the nodes where the switches are deployed at.
	Domain string `json:"domain"`
}

The SDN Controller that manages the overlay network.

func (*NetworkControllerSpec) DeepCopy

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

func (*NetworkControllerSpec) DeepCopyInto

func (in *NetworkControllerSpec) DeepCopyInto(out *NetworkControllerSpec)

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.
	NetworkController *NetworkControllerSpec `json:"networkController"`

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

	// 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"`
}

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"`
}

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

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.
	NetworkController *NetworkControllerSpec `json:"networkController"`

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

	// 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"`
}

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 {
	ConnectedNeighbors []NeighborSpec `json:"connectedNeighbors,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"`
}

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 []string `json:"nodes"`
	Links []Link   `json:"links"`
}

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