in pkg/nitro_enclaves_device_plugin/device_plugin.go [203:239]
func (nedp *NitroEnclavesDevicePlugin) Start() error {
nedp.releaseResources()
glog.V(0).Info("Starting Nitro Enclaves device plugin server...")
sock, err := net.Listen("unix", nedp.pdef.socketPath())
if err != nil {
glog.Errorf("Error while creating socket: %v", nedp.pdef.socketPath())
return err
}
nedp.server = grpc.NewServer([]grpc.ServerOption{}...)
pluginapi.RegisterDevicePluginServer(nedp.server, nedp)
go func() {
err := nedp.server.Serve(sock)
if err != nil {
if nedp.stop != nil {
glog.Errorf("Error while serving device plugin: %v", err)
close(nedp.stop)
}
}
}()
err = nedp.waitForServerReady(devicePluginServerReadyTimeout)
if err != nil {
return err
}
if err = nedp.register(pluginapi.KubeletSocket, nedp.ResourceName()); err != nil {
glog.Errorf("Error while registering device plugin with kubelet! (Reason: %s)", err)
nedp.Stop()
return err
}
glog.V(0).Infof("Registered device plugin with Kubelet: %v", nedp.ResourceName())
return nil
}