v1alpha1

package
v1.3.4 Latest Latest
Warning

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

Go to latest
Published: May 27, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the networking v1alpha1 API group.

This package defines the NodeENI custom resource, which is used to specify which nodes should have AWS Elastic Network Interfaces (ENIs) attached, and with what configuration. The NodeENI controller watches these resources and automatically manages the lifecycle of ENIs for matching nodes.

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchemeBuilder initializes a scheme builder
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: "networking.k8s.aws", Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ENIAttachment

type ENIAttachment struct {
	// NodeID is the ID of the node
	NodeID string `json:"nodeID"`

	// InstanceID is the EC2 instance ID
	InstanceID string `json:"instanceID"`

	// ENIID is the ID of the attached ENI
	ENIID string `json:"eniID"`

	// AttachmentID is the ID of the ENI attachment
	AttachmentID string `json:"attachmentID"`

	// SubnetID is the ID of the subnet where the ENI was created
	// +optional
	SubnetID string `json:"subnetID,omitempty"`

	// SubnetCIDR is the CIDR block of the subnet where the ENI was created
	// +optional
	SubnetCIDR string `json:"subnetCIDR,omitempty"`

	// MTU is the Maximum Transmission Unit configured for the ENI
	// +optional
	MTU int `json:"mtu,omitempty"`

	// DeviceIndex is the device index used for this ENI attachment
	// +optional
	DeviceIndex int `json:"deviceIndex,omitempty"`

	// Status is the status of the attachment
	Status string `json:"status"`

	// LastUpdated is the timestamp of the last update
	LastUpdated metav1.Time `json:"lastUpdated"`

	// DPDKBound indicates whether the ENI is bound to a DPDK driver
	// +optional
	DPDKBound bool `json:"dpdkBound,omitempty"`

	// DPDKDriver is the driver used for DPDK binding
	// +optional
	DPDKDriver string `json:"dpdkDriver,omitempty"`

	// DPDKResourceName is the resource name used for the DPDK interface in SRIOV device plugin
	// +optional
	DPDKResourceName string `json:"dpdkResourceName,omitempty"`

	// DPDKPCIAddress is the PCI address of the device bound to DPDK
	// +optional
	DPDKPCIAddress string `json:"dpdkPCIAddress,omitempty"`
}

ENIAttachment represents an ENI attachment to a node

func (*ENIAttachment) DeepCopy

func (in *ENIAttachment) DeepCopy() *ENIAttachment

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

func (*ENIAttachment) DeepCopyInto

func (in *ENIAttachment) DeepCopyInto(out *ENIAttachment)

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

type NodeENI

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

	Spec   NodeENISpec   `json:"spec"`
	Status NodeENIStatus `json:"status,omitempty"`
}

NodeENI is a specification for a NodeENI resource

func (*NodeENI) DeepCopy

func (in *NodeENI) DeepCopy() *NodeENI

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

func (*NodeENI) DeepCopyInto

func (in *NodeENI) DeepCopyInto(out *NodeENI)

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

func (*NodeENI) DeepCopyObject

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

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

type NodeENIList

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

	Items []NodeENI `json:"items"`
}

NodeENIList is a list of NodeENI resources

func (*NodeENIList) DeepCopy

func (in *NodeENIList) DeepCopy() *NodeENIList

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

func (*NodeENIList) DeepCopyInto

func (in *NodeENIList) DeepCopyInto(out *NodeENIList)

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

func (*NodeENIList) DeepCopyObject

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

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

type NodeENISpec

type NodeENISpec struct {
	// NodeSelector selects nodes that should have ENIs attached
	NodeSelector map[string]string `json:"nodeSelector"`

	// SubnetID is the AWS Subnet ID where the ENI should be created
	// +optional
	SubnetID string `json:"subnetID,omitempty"`

	// SubnetName is the AWS Subnet Name where the ENI should be created
	// If SubnetID is not provided, SubnetName will be used to look up the subnet
	// +optional
	SubnetName string `json:"subnetName,omitempty"`

	// SubnetIDs is a list of AWS Subnet IDs where the ENI can be created
	// If specified, one subnet will be selected from this list
	// +optional
	SubnetIDs []string `json:"subnetIDs,omitempty"`

	// SubnetNames is a list of AWS Subnet Names where the ENI can be created
	// If SubnetIDs is not provided, SubnetNames will be used to look up the subnets
	// +optional
	SubnetNames []string `json:"subnetNames,omitempty"`

	// SecurityGroupIDs are the AWS Security Group IDs to attach to the ENI
	// +optional
	SecurityGroupIDs []string `json:"securityGroupIDs,omitempty"`

	// SecurityGroupNames are the AWS Security Group Names to attach to the ENI
	// If SecurityGroupIDs is not provided, SecurityGroupNames will be used to look up the security groups
	// +optional
	SecurityGroupNames []string `json:"securityGroupNames,omitempty"`

	// DeviceIndex is the device index for the ENI (default: 1)
	// +optional
	DeviceIndex int `json:"deviceIndex,omitempty"`

	// DeleteOnTermination indicates whether to delete the ENI when the node is terminated
	// +optional
	DeleteOnTermination bool `json:"deleteOnTermination,omitempty"`

	// Description is a description for the ENI
	// +optional
	Description string `json:"description,omitempty"`

	// MTU is the Maximum Transmission Unit for the ENI (default: system default)
	// +optional
	MTU int `json:"mtu,omitempty"`

	// EnableDPDK indicates whether to bind the ENI to DPDK driver after attachment
	// +optional
	EnableDPDK bool `json:"enableDPDK,omitempty"`

	// DPDKDriver is the driver to use for DPDK binding (default: vfio-pci)
	// +optional
	DPDKDriver string `json:"dpdkDriver,omitempty"`

	// DPDKResourceName is the resource name to use for the DPDK interface in SRIOV device plugin
	// If not specified, a default name will be generated based on the interface index
	// +optional
	DPDKResourceName string `json:"dpdkResourceName,omitempty"`

	// DPDKPCIAddress is the PCI address of the device to bind to DPDK
	// If specified, this will be used instead of relying on device index mapping
	// Example: "0000:00:06.0"
	// +optional
	DPDKPCIAddress string `json:"dpdkPCIAddress,omitempty"`
}

NodeENISpec is the spec for a NodeENI resource

func (*NodeENISpec) DeepCopy

func (in *NodeENISpec) DeepCopy() *NodeENISpec

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

func (*NodeENISpec) DeepCopyInto

func (in *NodeENISpec) DeepCopyInto(out *NodeENISpec)

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

type NodeENIStatus

type NodeENIStatus struct {
	// Attachments is a list of ENI attachments
	// +optional
	Attachments []ENIAttachment `json:"attachments,omitempty"`
}

NodeENIStatus is the status for a NodeENI resource

func (*NodeENIStatus) DeepCopy

func (in *NodeENIStatus) DeepCopy() *NodeENIStatus

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

func (*NodeENIStatus) DeepCopyInto

func (in *NodeENIStatus) DeepCopyInto(out *NodeENIStatus)

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