// This protobuf file was pulled from k8s 1.19.2: // https://github.com/kubernetes/kubelet/blob/v0.19.2/pkg/apis/pluginregistration/v1/api.proto // As we track versions, we should update this as it is updated with mainline // kubernetes syntax = 'proto3'; // NOTE: The section with the gogoproto has been removed (as this is not Go). Everything else is // unchanged package pluginregistration; // PluginInfo is the message sent from a plugin to the Kubelet pluginwatcher for plugin registration message PluginInfo { // Type of the Plugin. CSIPlugin or DevicePlugin string type = 1; // Plugin name that uniquely identifies the plugin for the given plugin type. // For DevicePlugin, this is the resource name that the plugin manages and // should follow the extended resource name convention. // For CSI, this is the CSI driver registrar name. string name = 2; // Optional endpoint location. If found set by Kubelet component, // Kubelet component will use this endpoint for specific requests. // This allows the plugin to register using one endpoint and possibly use // a different socket for control operations. CSI uses this model to delegate // its registration external from the plugin. string endpoint = 3; // Plugin service API versions the plugin supports. // For DevicePlugin, this maps to the deviceplugin API versions the // plugin supports at the given socket. // The Kubelet component communicating with the plugin should be able // to choose any preferred version from this list, or returns an error // if none of the listed versions is supported. repeated string supported_versions = 4; } // RegistrationStatus is the message sent from Kubelet pluginwatcher to the plugin for notification on registration status message RegistrationStatus { // True if plugin gets registered successfully at Kubelet bool plugin_registered = 1; // Error message in case plugin fails to register, empty string otherwise string error = 2; } // RegistrationStatusResponse is sent by plugin to kubelet in response to RegistrationStatus RPC message RegistrationStatusResponse { } // InfoRequest is the empty request message from Kubelet message InfoRequest { } // Registration is the service advertised by the Plugins. service Registration { rpc GetInfo(InfoRequest) returns (PluginInfo) {} rpc NotifyRegistrationStatus(RegistrationStatus) returns (RegistrationStatusResponse) {} }