Skip to content

API Specification

Packages:

bpfd.io/v1alpha1

Package v1alpha1 contains API Schema definitions for the bpfd.io API group.

Resource Types:

BpfProgram

BpfProgram is the Schema for the Bpfprograms API

Field Description
apiVersion
string
bpfd.io/v1alpha1
kind
string
BpfProgram
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
BpfProgramSpec


node
string
(Optional)

Node program is loaded on

type
string
(Optional)

Type specifies the bpf program type

programs
map[string]map[string]string

ProgramMap is is a map with Keys: UUIDs, Values: map with Keys: Map Names, and Values: Map Pin paths

status
BpfProgramStatus
(Optional)

TcProgram

TcProgram is the Schema for the TcProgram API

Field Description
apiVersion
string
bpfd.io/v1alpha1
kind
string
TcProgram
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
TcProgramSpec


BpfProgramCommon
BpfProgramCommon

(Members of BpfProgramCommon are embedded into this type.)

interfaceselector
InterfaceSelector

Selector to determine the network interface (or interfaces)

priority
int32

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.

direction
string

Direction specifies the direction of traffic the tc program should attach to for a given network device.

proceedon
[]TcProceedOnValue
(Optional)

ProceedOn allows the user to call other tc programs in chain on this exit code. Multiple values are supported by repeating the parameter.

status
TcProgramStatus
(Optional)

TracepointProgram

TracepointProgram is the Schema for the TracepointPrograms API

Field Description
apiVersion
string
bpfd.io/v1alpha1
kind
string
TracepointProgram
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
TracepointProgramSpec


BpfProgramCommon
BpfProgramCommon

(Members of BpfProgramCommon are embedded into this type.)

name
string

Name refers to the name of the desired kernel tracepoint to attach this tracepoint bpf program to.

status
TracepointProgramStatus
(Optional)

XdpProgram

XdpProgram is the Schema for the XdpPrograms API

Field Description
apiVersion
string
bpfd.io/v1alpha1
kind
string
XdpProgram
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
XdpProgramSpec


BpfProgramCommon
BpfProgramCommon

(Members of BpfProgramCommon are embedded into this type.)

interfaceselector
InterfaceSelector

Selector to determine the network interface (or interfaces)

priority
int32

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.

proceedon
[]XdpProceedOnValue
status
XdpProgramStatus
(Optional)

BpfProgramCommon

(Appears on: TcProgramSpec, TracepointProgramSpec, XdpProgramSpec)

BpfProgramCommon defines the common attributes for all BPF programs

Field Description
sectionname
string

SectionName is the the section name described in the bpf Program

nodeselector
Kubernetes meta/v1.LabelSelector

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.

bytecode
BytecodeSelector

Bytecode configures where the bpf program’s bytecode should be loaded from.

globaldata
map[string][]byte
(Optional)

GlobalData allows the user to 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.

BpfProgramSpec

(Appears on: BpfProgram)

BpfProgramSpec defines the desired state of BpfProgram

Field Description
node
string
(Optional)

Node program is loaded on

type
string
(Optional)

Type specifies the bpf program type

programs
map[string]map[string]string

ProgramMap is is a map with Keys: UUIDs, Values: map with Keys: Map Names, and Values: Map Pin paths

BpfProgramStatus

(Appears on: BpfProgram)

BpfProgramStatus defines the observed state of BpfProgram TODO Make these a fixed set of metav1.Condition.types and metav1.Condition.reasons

Field Description
conditions
[]Kubernetes meta/v1.Condition

Conditions houses the updates regarding the actual implementation of the bpf program on the node Known .status.conditions.type are: “Available”, “Progressing”, and “Degraded”

BytecodeImage

(Appears on: BytecodeSelector)

BytecodeImage defines how to specify a bytecode container image.

Field Description
url
string

Valid container image URL used to reference a remote bytecode image.

imagepullpolicy
PullPolicy
(Optional)

PullPolicy describes a policy for if/when to pull a bytecode image. Defaults to IfNotPresent.

imagepullsecret
ImagePullSecretSelector
(Optional)

ImagePullSecret is the name of the secret bpfd should use to get remote image repository secrets.

BytecodeSelector

(Appears on: BpfProgramCommon)

BytecodeSelector defines the various ways to reference bpf bytecode objects.

Field Description
image
BytecodeImage

Image used to specify a bytecode container image.

path
string

Path is used to specify a bytecode object via filepath.

ImagePullSecretSelector

(Appears on: BytecodeImage)

ImagePullSecretSelector defines the name and namespace of an image pull secret.

Field Description
name
string

Name of the secret which contains the credentials to access the image repository.

namespace
string

Namespace of the secret which contains the credentials to access the image repository.

InterfaceSelector

(Appears on: TcProgramSpec, XdpProgramSpec)

InterfaceSelector defines interface to attach to.

Field Description
interface
string
(Optional)

Interface refers to the name of a network interface to attach BPF program too.

primarynodeinterface
bool
(Optional)

Attach BPF program to the primary interface on the node. Only ‘true’ accepted.

PullPolicy (string alias)

(Appears on: BytecodeImage)

PullPolicy describes a policy for if/when to pull a container image

Value Description

"Always"

PullAlways means that bpfd always attempts to pull the latest bytecode image. Container will fail If the pull fails.

"IfNotPresent"

PullIfNotPresent means that bpfd pulls if the image isn’t present on disk. Container will fail if the image isn’t present and the pull fails.

"Never"

PullNever means that bpfd never pulls an image, but only uses a local image. Container will fail if the image isn’t present

TcProceedOnValue (string alias)

(Appears on: TcProgramSpec)

TcProgramSpec

(Appears on: TcProgram)

TcProgramSpec defines the desired state of TcProgram

Field Description
BpfProgramCommon
BpfProgramCommon

(Members of BpfProgramCommon are embedded into this type.)

interfaceselector
InterfaceSelector

Selector to determine the network interface (or interfaces)

priority
int32

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.

direction
string

Direction specifies the direction of traffic the tc program should attach to for a given network device.

proceedon
[]TcProceedOnValue
(Optional)

ProceedOn allows the user to call other tc programs in chain on this exit code. Multiple values are supported by repeating the parameter.

TcProgramStatus

(Appears on: TcProgram)

TcProgramStatus defines the observed state of TcProgram

Field Description
conditions
[]Kubernetes meta/v1.Condition

Conditions houses the global cluster state for the TcProgram. The explicit condition types are defined internally.

TracepointProgramSpec

(Appears on: TracepointProgram)

TracepointProgramSpec defines the desired state of TracepointProgram

Field Description
BpfProgramCommon
BpfProgramCommon

(Members of BpfProgramCommon are embedded into this type.)

name
string

Name refers to the name of the desired kernel tracepoint to attach this tracepoint bpf program to.

TracepointProgramStatus

(Appears on: TracepointProgram)

TracepointProgramStatus defines the observed state of TracepointProgram

Field Description
conditions
[]Kubernetes meta/v1.Condition

Conditions houses the global cluster state for the TracepointProgram. The explicit condition types are defined internally.

XdpProceedOnValue (string alias)

(Appears on: XdpProgramSpec)

XdpProgramSpec

(Appears on: XdpProgram)

XdpProgramSpec defines the desired state of XdpProgram

Field Description
BpfProgramCommon
BpfProgramCommon

(Members of BpfProgramCommon are embedded into this type.)

interfaceselector
InterfaceSelector

Selector to determine the network interface (or interfaces)

priority
int32

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.

proceedon
[]XdpProceedOnValue

XdpProgramStatus

(Appears on: XdpProgram)

XdpProgramStatus defines the observed state of XdpProgram

Field Description
conditions
[]Kubernetes meta/v1.Condition

Conditions houses the global cluster state for the XdpProgram. The explicit condition types are defined internally.


Generated with gen-crd-api-reference-docs.