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.
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.
Shutdown a plugin (let it know the runtime is going down).
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.
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.
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.
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.
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)
ValidateContainerAdjustment relays a container adjustment validation request to the plugin. Container creation will fail the plugin rejects the adjustments.
Pod of container being adjusted.
Container being adjusted in its pristine state.
Pending container adjustments.
Pending updates to other containers.
Plugins that made the adjustments and updates.
Plugins consulted for adjustments and updates.
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: ,
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:
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:
Field enumerates all fields that can be adjusted by plugins.
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:
One OCI hook.
Used in:
Container OCI hooks.
Used in: ,
Container huge page limit.
Used in:
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:
Used in: ,
Scheduling class of the IO priority.
The value of the IO priority.
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: ,
Used in:
Used in:
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: ,
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:
Container rlimits
Used in: ,
Used in:
Pod metadata that is considered relevant for a plugin.
Used in: , , , , , ,
for NRI v1 emulation
SecurityProfile for container.
Used in:
Used in:
User and group IDs for the container.
Used in: