Get desktop application:
View/edit binary Protocol Buffers messages
go:plugin type=host
Log displays a log message
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
Configure the plugin and get its event subscription.
Any plugin-specific data, if present among the NRI configuration.
Name of the runtime NRI is running in.
Version of the runtime NRI is running in.
Configured registration timeout in milliseconds.
Configured request processing timeout in milliseconds.
Events to subscribe the plugin for. Each bit set corresponds to an enumerated Event.
Synchronize the plugin with the state of the runtime.
Pods known to the runtime.
Containers known to the runtime.
Whether there are more pods and containers to follow.
Updates to containers requested by the plugin.
Whether the client is able to handle more advertised pods and containers.
Shutdown a plugin (let it know the runtime is going down).
CreateContainer relays the corresponding request to the plugin. In response, the plugin can adjust the container being created, and update other containers in the runtime. Container adjustment can alter labels, annotations, mounts, devices, environment variables, OCI hooks, and assigned container resources. Updates can alter assigned container resources.
Pod of container being created.
Container being created.
Requested adjustments to container being created.
Requested updates to other existing containers.
Requested eviction of existing containers.
UpdateContainer relays the corresponding request to the plugin. The plugin can alter how the container is updated and request updates to additional containers in the runtime.
Pod of container being updated.
Container being updated.
Resources to update.
Requested updates to containers.
Requested eviction of containers.
StopContainer relays the corresponding request to the plugin. The plugin can update any of the remaining containers in the runtime in response.
Pod of container being stopped.
Container being stopped.
Requested updates to containers.
UpdatePodSandbox relays the corresponding request to the plugin.
Pod being updated.
Overhead associated with this pod.
Sum of container resources for this pod.
(message has no fields)
StateChange relays any remaining pod or container lifecycle/state change events the plugin has subscribed for. These can be used to trigger any plugin-specific processing which needs to occur in connection with any of these events.
Event type of notification.
Pod this notification is sent for. If this event is related to a container, pod is set to the pod of the container.
Container this notification is sent for. If the event is related to a pod, container is nil.
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.
RegisterPlugin registers the plugin with the runtime.
Name of the plugin to register.
Plugin invocation index. Plugins are called in ascending index order.
UpdateContainers requests unsolicited updates to a set of containers.
List of containers to update.
List of containers to evict.
Containers that the runtime failed to update.
A CDI device reference.
Used in:
Container metadata that is considered relevant for a plugin.
Used in:
, , , ,for NRI v1 emulation
Requested adjustments to a container being created.
Used in:
Request to evict (IOW unsolicitedly stop) a container.
Used in:
, ,Container to evict.
Human-readable reason for eviction.
Possible container states.
Used in:
is this useful/necessary ?
Requested update to an already created container.
Used in:
, , , , ,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)
Events that plugins can subscribe to in ConfigureResponse.
Used in:
One OCI hook.
Used in:
Container OCI hooks.
Used in:
,Container huge page limit.
Used in:
KeyValue represents an environment variable.
Used in:
CPU-related parts of (linux) resources.
Used in:
Container (linux) metadata.
Used in:
Adjustments to (linux) resources.
Used in:
Updates to (linux) resources.
Used in:
A container (linux) device.
Used in:
,A linux device cgroup controller rule.
Used in:
Memory-related parts of (linux) resources.
Used in:
A linux namespace.
Used in:
,Pids-related parts of (linux) resources.
Used in:
PodSandbox linux-specific metadata
Used in:
for NRI v1 emulation
for NRI v1 emulation
for NRI v1 emulation
Container (linux) resources.
Used in:
, , , , ,for NRI v1 emulation
Used in:
A container mount.
Used in:
,An optional boolean value.
Used in:
An optional value of file permissions.
Used in:
An optional signed integer value.
Used in:
, ,An optional 32-bit signed integer value.
An optional 64-bit signed integer value.
Used in:
, ,An optional string value.
Used in:
An optional 32-bit unsigned integer value.
Used in:
An optional 64-bit unsigned integer value.
Used in:
,Container rlimits
Used in:
,Pod metadata that is considered relevant for a plugin.
Used in:
, , , , ,for NRI v1 emulation