Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the l2sm v1 API group +kubebuilder:object:generate=true +groupName=l2sm.l2sm.k8s.local
Index ¶
- Variables
- type ConnectivityStatus
- type L2Network
- type L2NetworkList
- type L2NetworkSpec
- type L2NetworkStatus
- type Link
- type NeighborSpec
- type NetworkControllerSpec
- 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 ¶
This section is empty.
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 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 ¶
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"` }
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 ¶
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 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 ¶
func (in *NetworkControllerSpec) DeepCopy() *NetworkControllerSpec
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 ¶
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. 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 ¶
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"` }
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
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. 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 ¶
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 ¶
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.