# Functions
Resource takes an unqualified resource and returns a Group qualified GroupResource.
# Constants
BpfProgCondBytecodeSelectorError indicates that an error occurred when trying to process the bytecode selector.
BpfProgCondLoaded indicates that the eBPF program was successfully loaded into the kernel on a specific node.
BpfProgCondMapOwnerNotFound indicates that the eBPF program sharing a map with another eBPF program and that program does not exist.
BpfProgCondMapOwnerNotLoaded indicates that the eBPF program sharing a map with another eBPF program and that program is not loaded.
BpfProgCondNoContainersOnNode indicates that there are no containers on the node that match the container selector.
None of the above conditions apply.
BpfProgCondNotLoaded indicates that the eBPF program has not yet been loaded into the kernel on a specific node.
BpfProgCondNotSelected indicates that the eBPF program is not scheduled to be loaded on a specific node.
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.
BpfProgCondUnloaded indicates that the eBPF program has been unloaded from the kernel on a specific node.
GroupName specifies the group name used to register the objects.
ProgramDeleteError indicates that the BPF program was marked for deletion, but deletion was unsuccessful.
ProgramNotYetLoaded indicates that the program in question has not yet been loaded on all nodes in the cluster.
ProgramReconcileError indicates that an unforeseen situation has occurred in the controller logic, and the controller will retry.
BpfmanProgConfigReconcileSuccess indicates that the BPF program has been successfully reconciled.
ProgTypeFentry refers to the Fentry program type.
ProgTypeFexit refers to the Fexit program type.
ProgTypeKprobe refers to the Kprobe program type.
ProgTypeKretprobe refers to the Kprobe program type.
ProgTypeTC refers to the TC program type.
ProgTypeTCX refers to the TCx program type.
ProgTypeTracepoint refers to the Tracepoint program type.
ProgTypeUprobe refers to the Uprobe program type.
ProgTypeUretprobe refers to the Uretprobe program type.
ProgTypeXDP refers to the XDP program type.
PullAlways means that bpfman always attempts to pull the latest bytecode image.
PullIfNotPresent means that bpfman pulls if the image isn't present on disk.
PullNever means that bpfman never pulls an image, but only uses a local image.
# Variables
Deprecated: use Install instead.
GroupVersion specifies the group and the version used to register the objects.
No description provided by the author
localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
# Structs
BpfAppCommon defines the common attributes for all BpfApp programs.
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".
+kubebuilder:object:root=true BpfApplicationList contains a list of BpfApplications.
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".
BpfApplicationSpec defines the desired state of BpfApplication.
BpfApplicationStatus defines the observed state of BpfApplication.
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".
BpfProgramCommon defines the common attributes for all BPF programs.
BpfProgramList contains a list of BpfProgram.
BpfProgramSpec defines the desired state of BpfProgram.
BpfProgramStatus defines the observed state of BpfProgram TODO Make these a fixed set of metav1.Condition.types and metav1.Condition.reasons.
BpfProgramStatusCommon defines the BpfProgram status.
BytecodeImage defines how to specify a bytecode container image.
BytecodeSelector defines the various ways to reference bpf bytecode objects.
ContainerSelector identifies a set of containers.
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.
FentryProgramInfo defines the Fentry program details.
+kubebuilder:object:root=true FentryProgramList contains a list of FentryPrograms.
FentryProgramSpec defines the desired state of FentryProgram +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`.
FentryProgramStatus defines the observed state of FentryProgram.
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.
FexitProgramInfo defines the Fexit program details.
+kubebuilder:object:root=true FexitProgramList contains a list of FexitPrograms.
FexitProgramSpec defines the desired state of FexitProgram +kubebuilder:printcolumn:name="FunctionName",type=string,JSONPath=`.spec.func_name`.
FexitProgramStatus defines the observed state of FexitProgram.
ImagePullSecretSelector defines the name and namespace of an image pull secret.
InterfaceSelector defines interface to attach to.
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.
KprobeProgramInfo defines the common fields for KprobeProgram.
+kubebuilder:object:root=true KprobeProgramList contains a list of KprobePrograms.
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".
KprobeProgramStatus defines the observed state of KprobeProgram.
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.
TcProgramInfo defines the tc program details.
+kubebuilder:object:root=true TcProgramList contains a list of TcPrograms.
TcProgramSpec defines the desired state of TcProgram.
TcProgramStatus defines the observed state of TcProgram.
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.
TracepointProgramInfo defines the Tracepoint program details.
+kubebuilder:object:root=true TracepointProgramList contains a list of TracepointPrograms.
TracepointProgramSpec defines the desired state of TracepointProgram +kubebuilder:printcolumn:name="TracePoint",type=string,JSONPath=`.spec.name`.
TracepointProgramStatus defines the observed state of TracepointProgram.
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.
UprobeProgramInfo contains the information about the uprobe program.
+kubebuilder:object:root=true UprobeProgramList contains a list of UprobePrograms.
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`.
UprobeProgramStatus defines the observed state of UprobeProgram.
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.
XdpProgramInfo defines the common fields for all XdpProgram types.
+kubebuilder:object:root=true XdpProgramList contains a list of XdpPrograms.
XdpProgramSpec defines the desired state of XdpProgram.
XdpProgramStatus defines the observed state of XdpProgram.
# Type aliases
BpfProgramConditionType is a condition type to indicate the status of a BPF program at the individual node level.
EBPFProgType defines the supported eBPF program types.
ProgramConditionType is a condition type to indicate the status of a BPF program at the cluster level.
PullPolicy describes a policy for if/when to pull a container image +kubebuilder:validation:Enum=Always;Never;IfNotPresent.
+kubebuilder:validation:Enum=unspec;ok;reclassify;shot;pipe;stolen;queued;repeat;redirect;trap;dispatcher_return.
+kubebuilder:validation:Enum=aborted;drop;pass;tx;redirect;dispatcher_return.