Skip to main content
Version: latest

Operators

Operators are the cornerstones of the Inspektor Gadget architecture. They are modular components implementing the same interfaces: DataOperator and ImageOperator. They are responsible for specific tasks, such as loading eBPF programs, enriching events, sorting output, etc. All operators can generate, drop or manipulate data and few of them handle the layers of gadget OCI image.

Operators are arranged in a pipeline according to their priority:

Operators are enabled automatically based on the gadget that's being run, according to the layers present on the OCI image, the types used by the eBPF programs, etc. It's currently not possible to explicitly disable an operator. Also, all operators are currently built-in, we however plan to support third-party operators in the future.

Parametersโ€‹

Operators expose parameters to control them. There are two kinds of parameters:

Globalโ€‹

These parameters have a global scope and can only be set on the server part when deploying Inspektor Gadget in Kubernetes, running it as a daemon or running it locally. It means, these paremeters aren't available to users running gadgetctl or kubectl-gadget. They are intended to control sensitive things like security configuration that can only be set by the system administrator.

Instanceโ€‹

These parameters can be set each time a gadget is run and only have impact on the gadget being run.

Parameters are passed as flags when running a gadget using the CLI tools (kubectl-gadget / gadgetctl / ig). When using the APIs, it's required to use the full qualified name.

Available Operatorsโ€‹