v1alpha1

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2024 License: Apache-2.0 Imports: 3 Imported by: 2

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

View Source
const GroupName = "bpfman.io"

GroupName specifies the group name used to register the objects.

Variables

View Source
var (
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	// Deprecated: use Install instead
	AddToScheme = localSchemeBuilder.AddToScheme
	Install     = localSchemeBuilder.AddToScheme
)
View Source
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}

GroupVersion specifies the group and the version used to register the objects.

View Source
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

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

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

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

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

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.

See: https://github.com/bpfman/bpfman/issues/430

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

func (in *TcProgram) DeepCopy() *TcProgram

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

func (*TcProgram) DeepCopyInto

func (in *TcProgram) DeepCopyInto(out *TcProgram)

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

func (*TcProgram) DeepCopyObject

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

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

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

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

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL