| // To regenerate api.pb.go run hack/update-generated-kubelet-plugin-registration.sh |
| syntax = 'proto3'; |
| |
| package pluginregistration; |
| |
| import "github.com/gogo/protobuf/gogoproto/gogo.proto"; |
| |
| option (gogoproto.goproto_stringer_all) = false; |
| option (gogoproto.stringer_all) = true; |
| option (gogoproto.goproto_getters_all) = true; |
| option (gogoproto.marshaler_all) = true; |
| option (gogoproto.sizer_all) = true; |
| option (gogoproto.unmarshaler_all) = true; |
| option (gogoproto.goproto_unrecognized_all) = false; |
| |
| // 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) {} |
| } |