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  }