package nri.pkg.api.v1alpha1

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service HostFunctions

api.proto:119

go:plugin type=host

service Plugin

api.proto:77

Plugin is the API NRI uses to interact with plugins. It is used to - configure a plugin and subscribe it for lifecycle events - synchronize the state of a plugin with that of the runtime - hook a plugin into the lifecycle events of its interest During configuration the plugin tells the runtime which lifecycle events it wishes to get hooked into. Once configured, the plugin is synchronized with the runtime by receiving the list of pods and containers known to the runtime. The plugin can request changes to any of the containers in response. After initial synchronization the plugin starts receiving the events it subscribed for as they occur in the runtime. For container creation, update, and stop events, the plugin can request changes, both to the container that triggered the event or any other existing container in the runtime. For a subset of the container lifecycle events, NRI defines an additional Post-variant of the event. These variants are defined for CreateContainer, StartContainer, and UpdateContainer. For creation and update, these events can be used by plugins to discover the full extent of changes applied to the container, including any changes made by other active plugins. go:plugin type=plugin version=1

service Runtime

api.proto:27

Runtime service is the public API runtimes expose for NRI plugins. On this interface RPC requests are initiated by the plugin. This only covers plugin registration and unsolicited container updates. The rest of the API is defined by the Plugin service.

message CDIDevice

api.proto:409

A CDI device reference.

Used in: Container, ContainerAdjustment

message CompoundFieldOwners

api.proto:617

CompoundFieldOwners tracks 'plugin ownership' of compound fields which can be adjusted entry by entry, typically maps or slices. It is used to track ownership for annotations, mounts, devices, environment variables, hugepage limits, etc. The key identifies the owned entry (annotation key, mount destination, device path, environment variable name, etc.). The value is the owning plugin.

Used in: FieldOwners

message Container

api.proto:311

Container metadata that is considered relevant for a plugin.

Used in: CreateContainerRequest, StateChangeEvent, StopContainerRequest, SynchronizeRequest, UpdateContainerRequest, ValidateContainerAdjustmentRequest

message ContainerAdjustment

api.proto:499

Requested adjustments to a container being created.

Used in: CreateContainerResponse, ValidateContainerAdjustmentRequest

message ContainerEviction

api.proto:558

Request to evict (IOW unsolicitedly stop) a container.

Used in: CreateContainerResponse, UpdateContainerResponse, UpdateContainersRequest

enum ContainerState

api.proto:336

Possible container states.

Used in: Container

message ContainerUpdate

api.proto:546

Requested update to an already created container.

Used in: CreateContainerResponse, StopContainerResponse, SynchronizeResponse, UpdateContainerResponse, UpdateContainersRequest, UpdateContainersResponse, ValidateContainerAdjustmentRequest

message Empty

api.proto:264

Empty response for those *Requests that are semantically events.

Used as request type in: Plugin.Shutdown

Used as response type in: HostFunctions.Log, Plugin.Shutdown, Plugin.StateChange, Runtime.RegisterPlugin

(message has no fields)

enum Event

api.proto:267

Events that plugins can subscribe to in ConfigureResponse.

Used in: StateChangeEvent

enum Field

api.proto:641

Field enumerates all fields that can be adjusted by plugins.

message FieldOwners

api.proto:628

FieldOwners tracks field 'plugin ownership' for a single container. Keys represent adjustable fields of a container. For simple fields, the value is the plugin that last modified the field. For compound fields, the value is a CompoundFieldOwners which provides tracking 'plugin ownership' per field for compound data, typically maps and slices. Field enum values are used to index both maps, using Key() to get the int32 for the Field.

Used in: OwningPlugins

message Hook

api.proto:363

One OCI hook.

Used in: Hooks

message Hooks

api.proto:353

Container OCI hooks.

Used in: Container, ContainerAdjustment

message HugepageLimit

api.proto:456

Container huge page limit.

Used in: LinuxResources

enum IOPrioClass

api.proto:491

Used in: LinuxIOPriority

message KeyValue

api.proto:566

KeyValue represents an environment variable.

Used in: ContainerAdjustment

message LinuxCPU

api.proto:445

CPU-related parts of (linux) resources.

Used in: LinuxResources

message LinuxContainer

api.proto:371

Container (linux) metadata.

Used in: Container

message LinuxContainerAdjustment

api.proto:511

Adjustments to (linux) resources.

Used in: ContainerAdjustment

message LinuxContainerUpdate

api.proto:553

Updates to (linux) resources.

Used in: ContainerUpdate

message LinuxDevice

api.proto:389

A container (linux) device.

Used in: LinuxContainer, LinuxContainerAdjustment

message LinuxDeviceCgroup

api.proto:400

A linux device cgroup controller rule.

Used in: LinuxResources

message LinuxIOPriority

api.proto:484

Used in: LinuxContainer, LinuxContainerAdjustment

message LinuxMemory

api.proto:433

Memory-related parts of (linux) resources.

Used in: LinuxResources

message LinuxNamespace

api.proto:383

A linux namespace.

Used in: LinuxContainer, LinuxContainerAdjustment, LinuxPodSandbox

message LinuxPids

api.proto:480

Pids-related parts of (linux) resources.

Used in: LinuxResources

message LinuxPodSandbox

api.proto:301

PodSandbox linux-specific metadata

Used in: PodSandbox

message LinuxResources

api.proto:421

Container (linux) resources.

Used in: LinuxContainer, LinuxContainerAdjustment, LinuxContainerUpdate, LinuxPodSandbox, UpdateContainerRequest, UpdatePodSandboxRequest

message LinuxSeccomp

api.proto:521

Used in: LinuxContainer, LinuxContainerAdjustment

message LinuxSeccompArg

api.proto:538

Used in: LinuxSyscall

message LinuxSyscall

api.proto:531

Used in: LinuxSeccomp

enum LogRequest.Level

api.proto:127

Used in: LogRequest

message Mount

api.proto:345

A container mount.

Used in: Container, ContainerAdjustment

message OptionalBool

api.proto:602

An optional boolean value.

Used in: LinuxMemory

message OptionalFileMode

api.proto:607

An optional value of file permissions.

Used in: LinuxDevice

message OptionalInt

api.proto:577

An optional signed integer value.

Used in: Hook, LinuxContainer, LinuxContainerAdjustment

message OptionalInt32

api.proto:582

An optional 32-bit signed integer value.

message OptionalInt64

api.proto:592

An optional 64-bit signed integer value.

Used in: LinuxCPU, LinuxDeviceCgroup, LinuxMemory

message OptionalString

api.proto:572

An optional string value.

Used in: LinuxResources

message OptionalUInt32

api.proto:587

An optional 32-bit unsigned integer value.

Used in: LinuxDevice, LinuxSeccomp, LinuxSyscall

message OptionalUInt64

api.proto:597

An optional 64-bit unsigned integer value.

Used in: LinuxCPU, LinuxMemory

message OwningPlugins

api.proto:636

OwningPlugins tracks field 'plugin ownership' for multiple containers. The string keys are container IDs. The values are FieldOwners which track 'plugin ownership' per adjustable field for the container.

Used in: ValidateContainerAdjustmentRequest

message POSIXRlimit

api.proto:473

Container rlimits

Used in: Container, ContainerAdjustment

message PluginInstance

api.proto:253

Used in: ValidateContainerAdjustmentRequest

message PodSandbox

api.proto:287

Pod metadata that is considered relevant for a plugin.

Used in: CreateContainerRequest, StateChangeEvent, StopContainerRequest, SynchronizeRequest, UpdateContainerRequest, UpdatePodSandboxRequest, ValidateContainerAdjustmentRequest

message SecurityProfile

api.proto:462

SecurityProfile for container.

Used in: LinuxContainer

enum SecurityProfile.ProfileType

api.proto:463

Used in: SecurityProfile

message User

api.proto:414

User and group IDs for the container.

Used in: Container