in pkg/nitro_enclaves_cpu_plugin/device_plugin.go [99:141]
func (necdp *NitroEnclavesCPUDevicePlugin) register(kubeletEndpoint, resourceName string) error {
glog.V(0).Info("Attempting to connect to kubelet...")
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
opts := []grpc.DialOption{
grpc.WithTransportCredentials(insecure.NewCredentials()),
//lint:ignore SA1019 grpc.WithBlock is deprecated, not supported by grpc.NewClient
grpc.WithBlock(),
grpc.WithContextDialer(func(ctx context.Context, addr string) (net.Conn, error) {
return net.DialUnix("unix", nil, &net.UnixAddr{Name: addr, Net: "unix"})
}),
}
//lint:ignore SA1019 grpc.DialContext is deprecated // todo replace by grpc.NewClient
conn, err := grpc.DialContext(
ctx,
kubeletEndpoint,
opts...,
)
defer func(conn *grpc.ClientConn) {
err := conn.Close()
if err != nil {
glog.Errorf("Error closing connection to kubelet: %v", err)
}
}(conn)
if err != nil {
glog.Errorf("Couldn't connect to kubelet! (Reason: %s)", err)
return err
}
glog.V(0).Info("Connected to kubelet")
client := pluginapi.NewRegistrationClient(conn)
_, err = client.Register(ctx, &pluginapi.RegisterRequest{
Version: pluginapi.Version,
Endpoint: path.Base(necdp.socketPath()),
ResourceName: resourceName,
})
return err
}