Documentation ¶
Overview ¶
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
Package v1alpha1 contains API Schema definitions for the bpfman.io API group. +kubebuilder:object:generate=true +groupName=bpfman.io
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
+kubebuilder:validation:Required
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
All fields are required unless explicitly marked optional +kubebuilder:validation:Required
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type BpfAppCommon
- type BpfApplication
- type BpfApplicationList
- type BpfApplicationProgram
- type BpfApplicationSpec
- type BpfApplicationStatus
- type BpfProgram
- type BpfProgramCommon
- type BpfProgramConditionType
- type BpfProgramList
- type BpfProgramSpec
- type BpfProgramStatus
- type BpfProgramStatusCommon
- type BytecodeImage
- type BytecodeSelector
- type ContainerSelector
- type EBPFProgType
- type FentryProgram
- type FentryProgramInfo
- type FentryProgramList
- type FentryProgramSpec
- type FentryProgramStatus
- type FexitProgram
- type FexitProgramInfo
- type FexitProgramList
- type FexitProgramSpec
- type FexitProgramStatus
- type ImagePullSecretSelector
- type InterfaceSelector
- type KprobeProgram
- type KprobeProgramInfo
- type KprobeProgramList
- type KprobeProgramSpec
- type KprobeProgramStatus
- type ProgramConditionType
- type PullPolicy
- type TcProceedOnValue
- type TcProgram
- type TcProgramInfo
- type TcProgramList
- type TcProgramSpec
- type TcProgramStatus
- type TracepointProgram
- type TracepointProgramInfo
- type TracepointProgramList
- type TracepointProgramSpec
- type TracepointProgramStatus
- type UprobeProgram
- type UprobeProgramInfo
- type UprobeProgramList
- type UprobeProgramSpec
- type UprobeProgramStatus
- type XdpProceedOnValue
- type XdpProgram
- type XdpProgramInfo
- type XdpProgramList
- type XdpProgramSpec
- type XdpProgramStatus
Constants ¶
const GroupName = "bpfman.io"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Deprecated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
GroupVersion specifies the group and the version used to register the objects.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type BpfAppCommon ¶
type BpfAppCommon struct { // NodeSelector allows the user to specify which nodes to deploy the // bpf program to. This field must be specified, to select all nodes // use standard metav1.LabelSelector semantics and make it empty. NodeSelector metav1.LabelSelector `json:"nodeselector"` // GlobalData allows the user to set global variables when the program is loaded // with an array of raw bytes. This is a very low level primitive. The caller // is responsible for formatting the byte string appropriately considering // such things as size, endianness, alignment and packing of data structures. // +optional GlobalData map[string][]byte `json:"globaldata,omitempty"` // Bytecode configures where the bpf program's bytecode should be loaded // from. ByteCode BytecodeSelector `json:"bytecode"` }
BpfAppCommon defines the common attributes for all BpfApp programs
func (*BpfAppCommon) DeepCopy ¶
func (in *BpfAppCommon) DeepCopy() *BpfAppCommon
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfAppCommon.
func (*BpfAppCommon) DeepCopyInto ¶
func (in *BpfAppCommon) DeepCopyInto(out *BpfAppCommon)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfApplication ¶ added in v0.5.0
type BpfApplication struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec BpfApplicationSpec `json:"spec,omitempty"` Status BpfApplicationStatus `json:"status,omitempty"` }
BpfApplication is the Schema for the bpfapplications API +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*BpfApplication) DeepCopy ¶ added in v0.5.0
func (in *BpfApplication) DeepCopy() *BpfApplication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfApplication.
func (*BpfApplication) DeepCopyInto ¶ added in v0.5.0
func (in *BpfApplication) DeepCopyInto(out *BpfApplication)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BpfApplication) DeepCopyObject ¶ added in v0.5.0
func (in *BpfApplication) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BpfApplicationList ¶ added in v0.5.0
type BpfApplicationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []BpfApplication `json:"items"` }
+kubebuilder:object:root=true BpfApplicationList contains a list of BpfApplications
func (*BpfApplicationList) DeepCopy ¶ added in v0.5.0
func (in *BpfApplicationList) DeepCopy() *BpfApplicationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfApplicationList.
func (*BpfApplicationList) DeepCopyInto ¶ added in v0.5.0
func (in *BpfApplicationList) DeepCopyInto(out *BpfApplicationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BpfApplicationList) DeepCopyObject ¶ added in v0.5.0
func (in *BpfApplicationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BpfApplicationProgram ¶ added in v0.5.0
type BpfApplicationProgram struct { // Type specifies the bpf program type // +unionDiscriminator // +kubebuilder:validation:Required // +kubebuilder:validation:Enum:="XDP";"TC";"TCX";"Fentry";"Fexit";"Kprobe";"Kretprobe";"Uprobe";"Uretprobe";"Tracepoint" Type EBPFProgType `json:"type,omitempty"` // xdp defines the desired state of the application's XdpPrograms. // +unionMember // +optional XDP *XdpProgramInfo `json:"xdp,omitempty"` // tc defines the desired state of the application's TcPrograms. // +unionMember // +optional TC *TcProgramInfo `json:"tc,omitempty"` // tcx defines the desired state of the application's TcPrograms. // +unionMember // +optional TCX *TcProgramInfo `json:"tcx,omitempty"` // fentry defines the desired state of the application's FentryPrograms. // +unionMember // +optional Fentry *FentryProgramInfo `json:"fentry,omitempty"` // fexit defines the desired state of the application's FexitPrograms. // +unionMember // +optional Fexit *FexitProgramInfo `json:"fexit,omitempty"` // kprobe defines the desired state of the application's KprobePrograms. // +unionMember // +optional Kprobe *KprobeProgramInfo `json:"kprobe,omitempty"` // kretprobe defines the desired state of the application's KretprobePrograms. // +unionMember // +optional Kretprobe *KprobeProgramInfo `json:"kretprobe,omitempty"` // uprobe defines the desired state of the application's UprobePrograms. // +unionMember // +optional Uprobe *UprobeProgramInfo `json:"uprobe,omitempty"` // uretprobe defines the desired state of the application's UretprobePrograms. // +unionMember // +optional Uretprobe *UprobeProgramInfo `json:"uretprobe,omitempty"` // tracepoint defines the desired state of the application's TracepointPrograms. // +unionMember // +optional Tracepoint *TracepointProgramInfo `json:"tracepoint,omitempty"` }
BpfApplicationProgram defines the desired state of BpfApplication +union +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'XDP' ? has(self.xdp) : !has(self.xdp)",message="xdp configuration is required when type is XDP, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'TC' ? has(self.tc) : !has(self.tc)",message="tc configuration is required when type is TC, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'TCX' ? has(self.tcx) : !has(self.tcx)",message="tcx configuration is required when type is TCX, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Fentry' ? has(self.fentry) : !has(self.fentry)",message="fentry configuration is required when type is Fentry, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Fexit' ? has(self.fexit) : !has(self.fexit)",message="fexit configuration is required when type is Fexit, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Kprobe' ? has(self.kprobe) : !has(self.kprobe)",message="kprobe configuration is required when type is Kprobe, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Kretprobe' ? has(self.kretprobe) : !has(self.kretprobe)",message="kretprobe configuration is required when type is Kretprobe, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Uprobe' ? has(self.uprobe) : !has(self.uprobe)",message="uprobe configuration is required when type is Uprobe, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Uretprobe' ? has(self.uretprobe) : !has(self.uretprobe)",message="uretprobe configuration is required when type is Uretprobe, and forbidden otherwise" +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Tracepoint' ? has(self.tracepoint) : !has(self.tracepoint)",message="tracepoint configuration is required when type is Tracepoint, and forbidden otherwise"
func (*BpfApplicationProgram) DeepCopy ¶ added in v0.5.0
func (in *BpfApplicationProgram) DeepCopy() *BpfApplicationProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfApplicationProgram.
func (*BpfApplicationProgram) DeepCopyInto ¶ added in v0.5.0
func (in *BpfApplicationProgram) DeepCopyInto(out *BpfApplicationProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfApplicationSpec ¶ added in v0.5.0
type BpfApplicationSpec struct { BpfAppCommon `json:",inline"` // Programs is a list of bpf programs supported for a specific application. // It's possible that the application can selectively choose which program(s) // to run from this list. // +kubebuilder:validation:MinItems:=1 Programs []BpfApplicationProgram `json:"programs,omitempty"` }
BpfApplicationSpec defines the desired state of BpfApplication
func (*BpfApplicationSpec) DeepCopy ¶ added in v0.5.0
func (in *BpfApplicationSpec) DeepCopy() *BpfApplicationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfApplicationSpec.
func (*BpfApplicationSpec) DeepCopyInto ¶ added in v0.5.0
func (in *BpfApplicationSpec) DeepCopyInto(out *BpfApplicationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfApplicationStatus ¶ added in v0.5.0
type BpfApplicationStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
BpfApplicationStatus defines the observed state of BpfApplication
func (*BpfApplicationStatus) DeepCopy ¶ added in v0.5.0
func (in *BpfApplicationStatus) DeepCopy() *BpfApplicationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfApplicationStatus.
func (*BpfApplicationStatus) DeepCopyInto ¶ added in v0.5.0
func (in *BpfApplicationStatus) DeepCopyInto(out *BpfApplicationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfProgram ¶
type BpfProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec BpfProgramSpec `json:"spec"` // +optional Status BpfProgramStatus `json:"status,omitempty"` }
BpfProgram is the Schema for the Bpfprograms API +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.spec.type` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*BpfProgram) DeepCopy ¶
func (in *BpfProgram) DeepCopy() *BpfProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfProgram.
func (*BpfProgram) DeepCopyInto ¶
func (in *BpfProgram) DeepCopyInto(out *BpfProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BpfProgram) DeepCopyObject ¶
func (in *BpfProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BpfProgramCommon ¶
type BpfProgramCommon struct { // BpfFunctionName is the name of the function that is the entry point for the BPF // program BpfFunctionName string `json:"bpffunctionname"` // MapOwnerSelector is used to select the loaded eBPF program this eBPF program // will share a map with. The value is a label applied to the BpfProgram to select. // The selector must resolve to exactly one instance of a BpfProgram on a given node // or the eBPF program will not load. // +optional MapOwnerSelector metav1.LabelSelector `json:"mapownerselector"` }
BpfProgramCommon defines the common attributes for all BPF programs
func (*BpfProgramCommon) DeepCopy ¶
func (in *BpfProgramCommon) DeepCopy() *BpfProgramCommon
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfProgramCommon.
func (*BpfProgramCommon) DeepCopyInto ¶
func (in *BpfProgramCommon) DeepCopyInto(out *BpfProgramCommon)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfProgramConditionType ¶
type BpfProgramConditionType string
BpfProgramConditionType is a condition type to indicate the status of a BPF program at the individual node level.
const ( // BpfProgCondLoaded indicates that the eBPF program was successfully loaded // into the kernel on a specific node. BpfProgCondLoaded BpfProgramConditionType = "Loaded" // BpfProgCondNotLoaded indicates that the eBPF program has not yet been // loaded into the kernel on a specific node. BpfProgCondNotLoaded BpfProgramConditionType = "NotLoaded" // BpfProgCondUnloaded indicates that in the midst of trying to remove the // eBPF program from the kernel on the node, that program has not yet been // removed. BpfProgCondNotUnloaded BpfProgramConditionType = "NotUnLoaded" // BpfProgCondNotSelected indicates that the eBPF program is not scheduled to be loaded // on a specific node. BpfProgCondNotSelected BpfProgramConditionType = "NotSelected" // BpfProgCondUnloaded indicates that the eBPF program has been unloaded from // the kernel on a specific node. BpfProgCondUnloaded BpfProgramConditionType = "Unloaded" // BpfProgCondMapOwnerNotFound indicates that the eBPF program sharing a map with another // eBPF program and that program does not exist. BpfProgCondMapOwnerNotFound BpfProgramConditionType = "MapOwnerNotFound" // BpfProgCondMapOwnerNotLoaded indicates that the eBPF program sharing a map with another // eBPF program and that program is not loaded. BpfProgCondMapOwnerNotLoaded BpfProgramConditionType = "MapOwnerNotLoaded" // BpfProgCondBytecodeSelectorError indicates that an error occurred when trying to // process the bytecode selector. BpfProgCondBytecodeSelectorError BpfProgramConditionType = "BytecodeSelectorError" // BpfProgCondNoContainersOnNode indicates that there are no containers on the node // that match the container selector. BpfProgCondNoContainersOnNode BpfProgramConditionType = "NoContainersOnNode" // None of the above conditions apply BpfProgCondNone BpfProgramConditionType = "None" )
func (BpfProgramConditionType) Condition ¶
func (b BpfProgramConditionType) Condition() metav1.Condition
Condition is a helper method to promote any given BpfProgramConditionType to a full metav1.Condition in an opinionated fashion.
type BpfProgramList ¶
type BpfProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []BpfProgram `json:"items"` }
BpfProgramList contains a list of BpfProgram
func (*BpfProgramList) DeepCopy ¶
func (in *BpfProgramList) DeepCopy() *BpfProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfProgramList.
func (*BpfProgramList) DeepCopyInto ¶
func (in *BpfProgramList) DeepCopyInto(out *BpfProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BpfProgramList) DeepCopyObject ¶
func (in *BpfProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BpfProgramSpec ¶
type BpfProgramSpec struct { // Type specifies the bpf program type // +optional Type string `json:"type,omitempty"` }
BpfProgramSpec defines the desired state of BpfProgram
func (*BpfProgramSpec) DeepCopy ¶
func (in *BpfProgramSpec) DeepCopy() *BpfProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfProgramSpec.
func (*BpfProgramSpec) DeepCopyInto ¶
func (in *BpfProgramSpec) DeepCopyInto(out *BpfProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfProgramStatus ¶
type BpfProgramStatus struct { // Conditions houses the updates regarding the actual implementation of // the bpf program on the node // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
BpfProgramStatus defines the observed state of BpfProgram TODO Make these a fixed set of metav1.Condition.types and metav1.Condition.reasons
func (*BpfProgramStatus) DeepCopy ¶
func (in *BpfProgramStatus) DeepCopy() *BpfProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfProgramStatus.
func (*BpfProgramStatus) DeepCopyInto ¶
func (in *BpfProgramStatus) DeepCopyInto(out *BpfProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BpfProgramStatusCommon ¶
type BpfProgramStatusCommon struct { // Conditions houses the global cluster state for the eBPFProgram. The explicit // condition types are defined internally. // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
BpfProgramStatusCommon defines the BpfProgram status
func (*BpfProgramStatusCommon) DeepCopy ¶
func (in *BpfProgramStatusCommon) DeepCopy() *BpfProgramStatusCommon
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BpfProgramStatusCommon.
func (*BpfProgramStatusCommon) DeepCopyInto ¶
func (in *BpfProgramStatusCommon) DeepCopyInto(out *BpfProgramStatusCommon)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BytecodeImage ¶
type BytecodeImage struct { // Valid container image URL used to reference a remote bytecode image. Url string `json:"url"` // PullPolicy describes a policy for if/when to pull a bytecode image. Defaults to IfNotPresent. // +kubebuilder:default:=IfNotPresent // +optional ImagePullPolicy PullPolicy `json:"imagepullpolicy"` // ImagePullSecret is the name of the secret bpfman should use to get remote image // repository secrets. // +optional ImagePullSecret *ImagePullSecretSelector `json:"imagepullsecret,omitempty"` }
BytecodeImage defines how to specify a bytecode container image.
func (*BytecodeImage) DeepCopy ¶
func (in *BytecodeImage) DeepCopy() *BytecodeImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BytecodeImage.
func (*BytecodeImage) DeepCopyInto ¶
func (in *BytecodeImage) DeepCopyInto(out *BytecodeImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BytecodeSelector ¶
type BytecodeSelector struct { // Image used to specify a bytecode container image. Image *BytecodeImage `json:"image,omitempty"` // Path is used to specify a bytecode object via filepath. Path *string `json:"path,omitempty"` }
BytecodeSelector defines the various ways to reference bpf bytecode objects.
func (*BytecodeSelector) DeepCopy ¶
func (in *BytecodeSelector) DeepCopy() *BytecodeSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BytecodeSelector.
func (*BytecodeSelector) DeepCopyInto ¶
func (in *BytecodeSelector) DeepCopyInto(out *BytecodeSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerSelector ¶
type ContainerSelector struct { // Target namespaces. // +optional // +kubebuilder:default:="" Namespace string `json:"namespace"` // Target pods. This field must be specified, to select all pods use // standard metav1.LabelSelector semantics and make it empty. Pods metav1.LabelSelector `json:"pods"` // Name(s) of container(s). If none are specified, all containers in the // pod are selected. // +optional ContainerNames *[]string `json:"containernames,omitempty"` }
ContainerSelector identifies a set of containers. For example, this can be used to identify a set of containers in which to attach uprobes.
func (*ContainerSelector) DeepCopy ¶
func (in *ContainerSelector) DeepCopy() *ContainerSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerSelector.
func (*ContainerSelector) DeepCopyInto ¶
func (in *ContainerSelector) DeepCopyInto(out *ContainerSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EBPFProgType ¶ added in v0.5.0
type EBPFProgType string
EBPFProgType defines the supported eBPF program types
const ( // ProgTypeXDP refers to the XDP program type. ProgTypeXDP EBPFProgType = "XDP" // ProgTypeTC refers to the TC program type. ProgTypeTC EBPFProgType = "TC" // ProgTypeTCX refers to the TCx program type. ProgTypeTCX EBPFProgType = "TCX" // ProgTypeFentry refers to the Fentry program type. ProgTypeFentry EBPFProgType = "Fentry" // ProgTypeFexit refers to the Fexit program type. ProgTypeFexit EBPFProgType = "Fexit" // ProgTypeKprobe refers to the Kprobe program type. ProgTypeKprobe EBPFProgType = "Kprobe" // ProgTypeKretprobe refers to the Kprobe program type. ProgTypeKretprobe EBPFProgType = "Kretprobe" // ProgTypeUprobe refers to the Uprobe program type. ProgTypeUprobe EBPFProgType = "Uprobe" // ProgTypeUretprobe refers to the Uretprobe program type. ProgTypeUretprobe EBPFProgType = "Uretprobe" // ProgTypeTracepoint refers to the Tracepoint program type. ProgTypeTracepoint EBPFProgType = "Tracepoint" )
type FentryProgram ¶
type FentryProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec FentryProgramSpec `json:"spec"` // +optional Status FentryProgramStatus `json:"status,omitempty"` }
FentryProgram is the Schema for the FentryPrograms API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`,priority=1
func (*FentryProgram) DeepCopy ¶
func (in *FentryProgram) DeepCopy() *FentryProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FentryProgram.
func (*FentryProgram) DeepCopyInto ¶
func (in *FentryProgram) DeepCopyInto(out *FentryProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FentryProgram) DeepCopyObject ¶
func (in *FentryProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FentryProgramInfo ¶
type FentryProgramInfo struct { BpfProgramCommon `json:",inline"` // Function to attach the fentry to. FunctionName string `json:"func_name"` }
FentryProgramInfo defines the Fentry program details
func (*FentryProgramInfo) DeepCopy ¶
func (in *FentryProgramInfo) DeepCopy() *FentryProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FentryProgramInfo.
func (*FentryProgramInfo) DeepCopyInto ¶
func (in *FentryProgramInfo) DeepCopyInto(out *FentryProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FentryProgramList ¶
type FentryProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []FentryProgram `json:"items"` }
+kubebuilder:object:root=true FentryProgramList contains a list of FentryPrograms
func (*FentryProgramList) DeepCopy ¶
func (in *FentryProgramList) DeepCopy() *FentryProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FentryProgramList.
func (*FentryProgramList) DeepCopyInto ¶
func (in *FentryProgramList) DeepCopyInto(out *FentryProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FentryProgramList) DeepCopyObject ¶
func (in *FentryProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FentryProgramSpec ¶
type FentryProgramSpec struct { FentryProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
FentryProgramSpec defines the desired state of FentryProgram +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`
func (*FentryProgramSpec) DeepCopy ¶
func (in *FentryProgramSpec) DeepCopy() *FentryProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FentryProgramSpec.
func (*FentryProgramSpec) DeepCopyInto ¶
func (in *FentryProgramSpec) DeepCopyInto(out *FentryProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FentryProgramStatus ¶
type FentryProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
FentryProgramStatus defines the observed state of FentryProgram
func (*FentryProgramStatus) DeepCopy ¶
func (in *FentryProgramStatus) DeepCopy() *FentryProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FentryProgramStatus.
func (*FentryProgramStatus) DeepCopyInto ¶
func (in *FentryProgramStatus) DeepCopyInto(out *FentryProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FexitProgram ¶
type FexitProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec FexitProgramSpec `json:"spec"` // +optional Status FexitProgramStatus `json:"status,omitempty"` }
FexitProgram is the Schema for the FexitPrograms API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`,priority=1
func (*FexitProgram) DeepCopy ¶
func (in *FexitProgram) DeepCopy() *FexitProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FexitProgram.
func (*FexitProgram) DeepCopyInto ¶
func (in *FexitProgram) DeepCopyInto(out *FexitProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FexitProgram) DeepCopyObject ¶
func (in *FexitProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FexitProgramInfo ¶
type FexitProgramInfo struct { BpfProgramCommon `json:",inline"` // Function to attach the fexit to. FunctionName string `json:"func_name"` }
FexitProgramInfo defines the Fexit program details
func (*FexitProgramInfo) DeepCopy ¶
func (in *FexitProgramInfo) DeepCopy() *FexitProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FexitProgramInfo.
func (*FexitProgramInfo) DeepCopyInto ¶
func (in *FexitProgramInfo) DeepCopyInto(out *FexitProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FexitProgramList ¶
type FexitProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []FexitProgram `json:"items"` }
+kubebuilder:object:root=true FexitProgramList contains a list of FexitPrograms
func (*FexitProgramList) DeepCopy ¶
func (in *FexitProgramList) DeepCopy() *FexitProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FexitProgramList.
func (*FexitProgramList) DeepCopyInto ¶
func (in *FexitProgramList) DeepCopyInto(out *FexitProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FexitProgramList) DeepCopyObject ¶
func (in *FexitProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FexitProgramSpec ¶
type FexitProgramSpec struct { FexitProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
FexitProgramSpec defines the desired state of FexitProgram +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`
func (*FexitProgramSpec) DeepCopy ¶
func (in *FexitProgramSpec) DeepCopy() *FexitProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FexitProgramSpec.
func (*FexitProgramSpec) DeepCopyInto ¶
func (in *FexitProgramSpec) DeepCopyInto(out *FexitProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FexitProgramStatus ¶
type FexitProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
FexitProgramStatus defines the observed state of FexitProgram
func (*FexitProgramStatus) DeepCopy ¶
func (in *FexitProgramStatus) DeepCopy() *FexitProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FexitProgramStatus.
func (*FexitProgramStatus) DeepCopyInto ¶
func (in *FexitProgramStatus) DeepCopyInto(out *FexitProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImagePullSecretSelector ¶
type ImagePullSecretSelector struct { // Name of the secret which contains the credentials to access the image repository. Name string `json:"name"` // Namespace of the secret which contains the credentials to access the image repository. Namespace string `json:"namespace"` }
ImagePullSecretSelector defines the name and namespace of an image pull secret.
func (*ImagePullSecretSelector) DeepCopy ¶
func (in *ImagePullSecretSelector) DeepCopy() *ImagePullSecretSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePullSecretSelector.
func (*ImagePullSecretSelector) DeepCopyInto ¶
func (in *ImagePullSecretSelector) DeepCopyInto(out *ImagePullSecretSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InterfaceSelector ¶
type InterfaceSelector struct { // Interfaces refers to a list of network interfaces to attach the BPF // program to. // +optional Interfaces *[]string `json:"interfaces,omitempty"` // Attach BPF program to the primary interface on the node. Only 'true' accepted. // +optional PrimaryNodeInterface *bool `json:"primarynodeinterface,omitempty"` }
InterfaceSelector defines interface to attach to. +kubebuilder:validation:MaxProperties=1 +kubebuilder:validation:MinProperties=1
func (*InterfaceSelector) DeepCopy ¶
func (in *InterfaceSelector) DeepCopy() *InterfaceSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfaceSelector.
func (*InterfaceSelector) DeepCopyInto ¶
func (in *InterfaceSelector) DeepCopyInto(out *InterfaceSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KprobeProgram ¶
type KprobeProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec KprobeProgramSpec `json:"spec"` // +optional Status KprobeProgramStatus `json:"status,omitempty"` }
KprobeProgram is the Schema for the KprobePrograms API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`,priority=1 +kubebuilder:printcolumn:name="Offset",type=integer,JSONPath=`.spec.offset`,priority=1 +kubebuilder:printcolumn:name="RetProbe",type=boolean,JSONPath=`.spec.retprobe`,priority=1
func (*KprobeProgram) DeepCopy ¶
func (in *KprobeProgram) DeepCopy() *KprobeProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KprobeProgram.
func (*KprobeProgram) DeepCopyInto ¶
func (in *KprobeProgram) DeepCopyInto(out *KprobeProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KprobeProgram) DeepCopyObject ¶
func (in *KprobeProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KprobeProgramInfo ¶
type KprobeProgramInfo struct { BpfProgramCommon `json:",inline"` // Functions to attach the kprobe to. FunctionName string `json:"func_name"` // Offset added to the address of the function for kprobe. // Not allowed for kretprobes. // +optional // +kubebuilder:default:=0 Offset uint64 `json:"offset"` // Whether the program is a kretprobe. Default is false // +optional // +kubebuilder:default:=false RetProbe bool `json:"retprobe"` }
KprobeProgramInfo defines the common fields for KprobeProgram
func (*KprobeProgramInfo) DeepCopy ¶
func (in *KprobeProgramInfo) DeepCopy() *KprobeProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KprobeProgramInfo.
func (*KprobeProgramInfo) DeepCopyInto ¶
func (in *KprobeProgramInfo) DeepCopyInto(out *KprobeProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KprobeProgramList ¶
type KprobeProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []KprobeProgram `json:"items"` }
+kubebuilder:object:root=true KprobeProgramList contains a list of KprobePrograms
func (*KprobeProgramList) DeepCopy ¶
func (in *KprobeProgramList) DeepCopy() *KprobeProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KprobeProgramList.
func (*KprobeProgramList) DeepCopyInto ¶
func (in *KprobeProgramList) DeepCopyInto(out *KprobeProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KprobeProgramList) DeepCopyObject ¶
func (in *KprobeProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KprobeProgramSpec ¶
type KprobeProgramSpec struct { KprobeProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
KprobeProgramSpec defines the desired state of KprobeProgram +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name` +kubebuilder:printcolumn:name="Offset",type=integer,JSONPath=`.spec.offset` +kubebuilder:printcolumn:name="RetProbe",type=boolean,JSONPath=`.spec.retprobe` +kubebuilder:validation:XValidation:message="offset cannot be set for kretprobes",rule="self.retprobe == false || self.offset == 0"
func (*KprobeProgramSpec) DeepCopy ¶
func (in *KprobeProgramSpec) DeepCopy() *KprobeProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KprobeProgramSpec.
func (*KprobeProgramSpec) DeepCopyInto ¶
func (in *KprobeProgramSpec) DeepCopyInto(out *KprobeProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KprobeProgramStatus ¶
type KprobeProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
KprobeProgramStatus defines the observed state of KprobeProgram
func (*KprobeProgramStatus) DeepCopy ¶
func (in *KprobeProgramStatus) DeepCopy() *KprobeProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KprobeProgramStatus.
func (*KprobeProgramStatus) DeepCopyInto ¶
func (in *KprobeProgramStatus) DeepCopyInto(out *KprobeProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProgramConditionType ¶
type ProgramConditionType string
ProgramConditionType is a condition type to indicate the status of a BPF program at the cluster level.
const ( // ProgramNotYetLoaded indicates that the program in question has not // yet been loaded on all nodes in the cluster. ProgramNotYetLoaded ProgramConditionType = "NotYetLoaded" // ProgramReconcileError indicates that an unforeseen situation has // occurred in the controller logic, and the controller will retry. ProgramReconcileError ProgramConditionType = "ReconcileError" // BpfmanProgConfigReconcileSuccess indicates that the BPF program has been // successfully reconciled. // // TODO: we should consider removing "reconciled" type logic from the // public API as it's an implementation detail of our use of controller // runtime, but not necessarily relevant to human users or integrations. // // See: https://github.com/bpfman/bpfman/issues/430 ProgramReconcileSuccess ProgramConditionType = "ReconcileSuccess" // ProgramDeleteError indicates that the BPF program was marked for // deletion, but deletion was unsuccessful. ProgramDeleteError ProgramConditionType = "DeleteError" )
func (ProgramConditionType) Condition ¶
func (b ProgramConditionType) Condition(message string) metav1.Condition
Condition is a helper method to promote any given ProgramConditionType to a full metav1.Condition in an opinionated fashion.
TODO: this was created in the early days to provide at least SOME status information to the user, but the hardcoded messages need to be replaced in the future with dynamic and situation-aware messages later.
type PullPolicy ¶
type PullPolicy string
PullPolicy describes a policy for if/when to pull a container image +kubebuilder:validation:Enum=Always;Never;IfNotPresent
const ( // PullAlways means that bpfman always attempts to pull the latest bytecode image. Container will fail If the pull fails. PullAlways PullPolicy = "Always" // PullNever means that bpfman never pulls an image, but only uses a local image. Container will fail if the image isn't present PullNever PullPolicy = "Never" // PullIfNotPresent means that bpfman pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. PullIfNotPresent PullPolicy = "IfNotPresent" )
type TcProceedOnValue ¶
type TcProceedOnValue string
+kubebuilder:validation:Enum=unspec;ok;reclassify;shot;pipe;stolen;queued;repeat;redirect;trap;dispatcher_return
type TcProgram ¶
type TcProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec TcProgramSpec `json:"spec"` // +optional Status TcProgramStatus `json:"status,omitempty"` }
TcProgram is the Schema for the TcProgram API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="Priority",type=string,JSONPath=`.spec.priority`,priority=1 +kubebuilder:printcolumn:name="Direction",type=string,JSONPath=`.spec.direction`,priority=1 +kubebuilder:printcolumn:name="InterfaceSelector",type=string,JSONPath=`.spec.interfaceselector`,priority=1 +kubebuilder:printcolumn:name="ProceedOn",type=string,JSONPath=`.spec.proceedon`,priority=1
func (*TcProgram) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TcProgram.
func (*TcProgram) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TcProgram) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TcProgramInfo ¶
type TcProgramInfo struct { BpfProgramCommon `json:",inline"` // Selector to determine the network interface (or interfaces) InterfaceSelector InterfaceSelector `json:"interfaceselector"` // Priority specifies the priority of the tc program in relation to // other programs of the same type with the same attach point. It is a value // from 0 to 1000 where lower values have higher precedence. // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=1000 Priority int32 `json:"priority"` // Direction specifies the direction of traffic the tc program should // attach to for a given network device. // +kubebuilder:validation:Enum=ingress;egress Direction string `json:"direction"` // ProceedOn allows the user to call other tc programs in chain on this exit code. // Multiple values are supported by repeating the parameter. // +optional // +kubebuilder:validation:MaxItems=11 // +kubebuilder:default:={pipe,dispatcher_return} ProceedOn []TcProceedOnValue `json:"proceedon"` }
TcProgramInfo defines the tc program details
func (*TcProgramInfo) DeepCopy ¶
func (in *TcProgramInfo) DeepCopy() *TcProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TcProgramInfo.
func (*TcProgramInfo) DeepCopyInto ¶
func (in *TcProgramInfo) DeepCopyInto(out *TcProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TcProgramList ¶
type TcProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []TcProgram `json:"items"` }
+kubebuilder:object:root=true TcProgramList contains a list of TcPrograms
func (*TcProgramList) DeepCopy ¶
func (in *TcProgramList) DeepCopy() *TcProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TcProgramList.
func (*TcProgramList) DeepCopyInto ¶
func (in *TcProgramList) DeepCopyInto(out *TcProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TcProgramList) DeepCopyObject ¶
func (in *TcProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TcProgramSpec ¶
type TcProgramSpec struct { TcProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
TcProgramSpec defines the desired state of TcProgram
func (*TcProgramSpec) DeepCopy ¶
func (in *TcProgramSpec) DeepCopy() *TcProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TcProgramSpec.
func (*TcProgramSpec) DeepCopyInto ¶
func (in *TcProgramSpec) DeepCopyInto(out *TcProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TcProgramStatus ¶
type TcProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
TcProgramStatus defines the observed state of TcProgram
func (*TcProgramStatus) DeepCopy ¶
func (in *TcProgramStatus) DeepCopy() *TcProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TcProgramStatus.
func (*TcProgramStatus) DeepCopyInto ¶
func (in *TcProgramStatus) DeepCopyInto(out *TcProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TracepointProgram ¶
type TracepointProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec TracepointProgramSpec `json:"spec"` // +optional Status TracepointProgramStatus `json:"status,omitempty"` }
TracepointProgram is the Schema for the TracepointPrograms API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="TracePoint",type=string,JSONPath=`.spec.name`,priority=1
func (*TracepointProgram) DeepCopy ¶
func (in *TracepointProgram) DeepCopy() *TracepointProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracepointProgram.
func (*TracepointProgram) DeepCopyInto ¶
func (in *TracepointProgram) DeepCopyInto(out *TracepointProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TracepointProgram) DeepCopyObject ¶
func (in *TracepointProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TracepointProgramInfo ¶
type TracepointProgramInfo struct { BpfProgramCommon `json:",inline"` // Names refers to the names of kernel tracepoints to attach the // bpf program to. Names []string `json:"names"` }
TracepointProgramInfo defines the Tracepoint program details
func (*TracepointProgramInfo) DeepCopy ¶
func (in *TracepointProgramInfo) DeepCopy() *TracepointProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracepointProgramInfo.
func (*TracepointProgramInfo) DeepCopyInto ¶
func (in *TracepointProgramInfo) DeepCopyInto(out *TracepointProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TracepointProgramList ¶
type TracepointProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []TracepointProgram `json:"items"` }
+kubebuilder:object:root=true TracepointProgramList contains a list of TracepointPrograms
func (*TracepointProgramList) DeepCopy ¶
func (in *TracepointProgramList) DeepCopy() *TracepointProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracepointProgramList.
func (*TracepointProgramList) DeepCopyInto ¶
func (in *TracepointProgramList) DeepCopyInto(out *TracepointProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TracepointProgramList) DeepCopyObject ¶
func (in *TracepointProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TracepointProgramSpec ¶
type TracepointProgramSpec struct { TracepointProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
TracepointProgramSpec defines the desired state of TracepointProgram +kubebuilder:printcolumn:name="TracePoint",type=string,JSONPath=`.spec.name`
func (*TracepointProgramSpec) DeepCopy ¶
func (in *TracepointProgramSpec) DeepCopy() *TracepointProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracepointProgramSpec.
func (*TracepointProgramSpec) DeepCopyInto ¶
func (in *TracepointProgramSpec) DeepCopyInto(out *TracepointProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TracepointProgramStatus ¶
type TracepointProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
TracepointProgramStatus defines the observed state of TracepointProgram
func (*TracepointProgramStatus) DeepCopy ¶
func (in *TracepointProgramStatus) DeepCopy() *TracepointProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracepointProgramStatus.
func (*TracepointProgramStatus) DeepCopyInto ¶
func (in *TracepointProgramStatus) DeepCopyInto(out *TracepointProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UprobeProgram ¶
type UprobeProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec UprobeProgramSpec `json:"spec"` // +optional Status UprobeProgramStatus `json:"status,omitempty"` }
UprobeProgram is the Schema for the UprobePrograms API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`,priority=1 +kubebuilder:printcolumn:name="Offset",type=integer,JSONPath=`.spec.offset`,priority=1 +kubebuilder:printcolumn:name="Target",type=string,JSONPath=`.spec.target`,priority=1 +kubebuilder:printcolumn:name="RetProbe",type=boolean,JSONPath=`.spec.retprobe`,priority=1 +kubebuilder:printcolumn:name="Pid",type=integer,JSONPath=`.spec.pid`,priority=1
func (*UprobeProgram) DeepCopy ¶
func (in *UprobeProgram) DeepCopy() *UprobeProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UprobeProgram.
func (*UprobeProgram) DeepCopyInto ¶
func (in *UprobeProgram) DeepCopyInto(out *UprobeProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UprobeProgram) DeepCopyObject ¶
func (in *UprobeProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type UprobeProgramInfo ¶
type UprobeProgramInfo struct { BpfProgramCommon `json:",inline"` // Function to attach the uprobe to. // +optional FunctionName string `json:"func_name"` // Offset added to the address of the function for uprobe. // +optional // +kubebuilder:default:=0 Offset uint64 `json:"offset"` // Library name or the absolute path to a binary or library. Target string `json:"target"` // Whether the program is a uretprobe. Default is false // +optional // +kubebuilder:default:=false RetProbe bool `json:"retprobe"` // Only execute uprobe for given process identification number (PID). If PID // is not provided, uprobe executes for all PIDs. // +optional Pid int32 `json:"pid"` // Containers identifes the set of containers in which to attach the uprobe. // If Containers is not specified, the uprobe will be attached in the // bpfman-agent container. The ContainerSelector is very flexible and even // allows the selection of all containers in a cluster. If an attempt is // made to attach uprobes to too many containers, it can have a negative // impact on on the cluster. // +optional Containers *ContainerSelector `json:"containers"` }
UprobeProgramInfo contains the information about the uprobe program
func (*UprobeProgramInfo) DeepCopy ¶
func (in *UprobeProgramInfo) DeepCopy() *UprobeProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UprobeProgramInfo.
func (*UprobeProgramInfo) DeepCopyInto ¶
func (in *UprobeProgramInfo) DeepCopyInto(out *UprobeProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UprobeProgramList ¶
type UprobeProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []UprobeProgram `json:"items"` }
+kubebuilder:object:root=true UprobeProgramList contains a list of UprobePrograms
func (*UprobeProgramList) DeepCopy ¶
func (in *UprobeProgramList) DeepCopy() *UprobeProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UprobeProgramList.
func (*UprobeProgramList) DeepCopyInto ¶
func (in *UprobeProgramList) DeepCopyInto(out *UprobeProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UprobeProgramList) DeepCopyObject ¶
func (in *UprobeProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type UprobeProgramSpec ¶
type UprobeProgramSpec struct { UprobeProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
UprobeProgramSpec defines the desired state of UprobeProgram +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name` +kubebuilder:printcolumn:name="Offset",type=integer,JSONPath=`.spec.offset` +kubebuilder:printcolumn:name="Target",type=string,JSONPath=`.spec.target` +kubebuilder:printcolumn:name="RetProbe",type=boolean,JSONPath=`.spec.retprobe` +kubebuilder:printcolumn:name="Pid",type=integer,JSONPath=`.spec.pid`
func (*UprobeProgramSpec) DeepCopy ¶
func (in *UprobeProgramSpec) DeepCopy() *UprobeProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UprobeProgramSpec.
func (*UprobeProgramSpec) DeepCopyInto ¶
func (in *UprobeProgramSpec) DeepCopyInto(out *UprobeProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UprobeProgramStatus ¶
type UprobeProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
UprobeProgramStatus defines the observed state of UprobeProgram
func (*UprobeProgramStatus) DeepCopy ¶
func (in *UprobeProgramStatus) DeepCopy() *UprobeProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UprobeProgramStatus.
func (*UprobeProgramStatus) DeepCopyInto ¶
func (in *UprobeProgramStatus) DeepCopyInto(out *UprobeProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type XdpProceedOnValue ¶
type XdpProceedOnValue string
+kubebuilder:validation:Enum=aborted;drop;pass;tx;redirect;dispatcher_return
type XdpProgram ¶
type XdpProgram struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec XdpProgramSpec `json:"spec"` // +optional Status XdpProgramStatus `json:"status,omitempty"` }
XdpProgram is the Schema for the XdpPrograms API +kubebuilder:printcolumn:name="BpfFunctionName",type=string,JSONPath=`.spec.bpffunctionname` +kubebuilder:printcolumn:name="NodeSelector",type=string,JSONPath=`.spec.nodeselector` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[0].reason` +kubebuilder:printcolumn:name="Priority",type=string,JSONPath=`.spec.priority`,priority=1 +kubebuilder:printcolumn:name="InterfaceSelector",type=string,JSONPath=`.spec.interfaceselector`,priority=1 +kubebuilder:printcolumn:name="ProceedOn",type=string,JSONPath=`.spec.proceedon`,priority=1
func (*XdpProgram) DeepCopy ¶
func (in *XdpProgram) DeepCopy() *XdpProgram
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XdpProgram.
func (*XdpProgram) DeepCopyInto ¶
func (in *XdpProgram) DeepCopyInto(out *XdpProgram)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*XdpProgram) DeepCopyObject ¶
func (in *XdpProgram) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type XdpProgramInfo ¶
type XdpProgramInfo struct { BpfProgramCommon `json:",inline"` // Selector to determine the network interface (or interfaces) InterfaceSelector InterfaceSelector `json:"interfaceselector"` // Priority specifies the priority of the bpf program in relation to // other programs of the same type with the same attach point. It is a value // from 0 to 1000 where lower values have higher precedence. // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=1000 Priority int32 `json:"priority"` ProceedOn []XdpProceedOnValue `json:"proceedon"` }
XdpProgramInfo defines the common fields for all XdpProgram types
func (*XdpProgramInfo) DeepCopy ¶
func (in *XdpProgramInfo) DeepCopy() *XdpProgramInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XdpProgramInfo.
func (*XdpProgramInfo) DeepCopyInto ¶
func (in *XdpProgramInfo) DeepCopyInto(out *XdpProgramInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type XdpProgramList ¶
type XdpProgramList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []XdpProgram `json:"items"` }
+kubebuilder:object:root=true XdpProgramList contains a list of XdpPrograms
func (*XdpProgramList) DeepCopy ¶
func (in *XdpProgramList) DeepCopy() *XdpProgramList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XdpProgramList.
func (*XdpProgramList) DeepCopyInto ¶
func (in *XdpProgramList) DeepCopyInto(out *XdpProgramList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*XdpProgramList) DeepCopyObject ¶
func (in *XdpProgramList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type XdpProgramSpec ¶
type XdpProgramSpec struct { XdpProgramInfo `json:",inline"` BpfAppCommon `json:",inline"` }
XdpProgramSpec defines the desired state of XdpProgram
func (*XdpProgramSpec) DeepCopy ¶
func (in *XdpProgramSpec) DeepCopy() *XdpProgramSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XdpProgramSpec.
func (*XdpProgramSpec) DeepCopyInto ¶
func (in *XdpProgramSpec) DeepCopyInto(out *XdpProgramSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type XdpProgramStatus ¶
type XdpProgramStatus struct {
BpfProgramStatusCommon `json:",inline"`
}
XdpProgramStatus defines the observed state of XdpProgram
func (*XdpProgramStatus) DeepCopy ¶
func (in *XdpProgramStatus) DeepCopy() *XdpProgramStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XdpProgramStatus.
func (*XdpProgramStatus) DeepCopyInto ¶
func (in *XdpProgramStatus) DeepCopyInto(out *XdpProgramStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.