func()

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
}