func()

in pkg/nitro_enclaves_cpu_plugin/device_plugin.go [221:255]


func (necdp *NitroEnclavesCPUDevicePlugin) Start() error {
	necdp.releaseResources()
	glog.V(0).Info("Starting Nitro Enclaves CPU device plugin server...")

	sock, err := net.Listen("unix", necdp.socketPath())
	if err != nil {
		glog.Error("Error while creating socket: ", necdp.socketPath())
		return err
	}

	necdp.server = grpc.NewServer([]grpc.ServerOption{}...)
	pluginapi.RegisterDevicePluginServer(necdp.server, necdp)
	go func() {
		err := necdp.server.Serve(sock)
		if err != nil {
			if necdp.stop != nil {
				glog.Errorf("Error while serving device plugin: %v", err)
				close(necdp.stop)
			}
		}
	}()
	err = necdp.waitForServerReady(devicePluginServerReadyTimeout)
	if err != nil {
		return err
	}

	if err = necdp.register(pluginapi.KubeletSocket, necdp.ResourceName()); err != nil {
		glog.Errorf("Error while registering cpu device plugin with kubelet! (Reason: %s)", err)
		necdp.Stop()
		return err
	}
	glog.V(0).Info("Registered cpu device plugin with Kubelet: ", necdp.ResourceName())

	return nil
}