github.com/openshift/dpu-operator@v0.0.0-20240502153209-3af840d137c2/daemon/device-plugin/types.go (about) 1 package nfdeviceplugin 2 3 import ( 4 pluginapi "k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1" 5 ) 6 7 var ( 8 // SockDir is the default Kubelet device plugin socket directory 9 SockDir = "/var/lib/kubelet/plugins_registry" 10 // DeprecatedSockDir is the deprecated Kubelet device plugin socket directory 11 DeprecatedSockDir = "/var/lib/kubelet/device-plugins" 12 ) 13 14 const ( 15 // KubeEndPoint is kubelet socket name 16 KubeEndPoint = "kubelet.sock" 17 ) 18 19 // ExcludeConfig contains excluded list of devices 20 type ExcludeConfig struct { 21 ExcludeDevices []string `json:"exclude"` 22 } 23 24 // ResourceFactory is an interface to get instances of ResourcePool and ResourceServer 25 type ResourceFactory interface { 26 GetResourceServer(ResourcePool) (ResourceServer, error) 27 GetResourcePool(rc *ExcludeConfig) (ResourcePool, error) 28 } 29 30 // ResourcePool represents a generic resource entity 31 type ResourcePool interface { 32 // extended API for internal use 33 GetResourceName() string 34 GetResourcePrefix() string 35 GetDevices() map[string]*pluginapi.Device // for ListAndWatch 36 Probe() bool 37 GetDeviceSpecs(deviceIDs []string) []*pluginapi.DeviceSpec 38 GetEnvs(prefix string, deviceIDs []string) (map[string]string, error) 39 GetMounts(deviceIDs []string) []*pluginapi.Mount 40 StoreDeviceInfoFile(resourceNamePrefix string) error 41 CleanDeviceInfoFile(resourceNamePrefix string) error 42 GetCDIName() string 43 } 44 45 // ResourceServer is gRPC server implements K8s device plugin api 46 type ResourceServer interface { 47 // Device manager API 48 pluginapi.DevicePluginServer 49 // grpc server related 50 Start() error 51 Stop() error 52 // Init initializes resourcePool 53 Init() error 54 // Watch watches for socket file deletion and restart server if needed 55 Watch() 56 } 57 58 // NadUtils is an interface for Network-Attachment-Definition utilities 59 type NadUtils interface { 60 }