Skip to content

Commit

Permalink
Manually update to the latest sdk version (#292)
Browse files Browse the repository at this point in the history
Signed-off-by: Vladimir Popov <[email protected]>
  • Loading branch information
Vladimir Popov authored May 28, 2021
1 parent ae8e59c commit ce5b294
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 64 deletions.
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ require (
github.com/edwarnicke/grpcfd v0.1.0
github.com/edwarnicke/serialize v1.0.7
github.com/kelseyhightower/envconfig v1.4.0
github.com/networkservicemesh/api v0.0.0-20210523193133-30a6f075c760
github.com/networkservicemesh/sdk v0.0.0-20210527091756-a61f17ea5a13
github.com/networkservicemesh/api v0.0.0-20210527182901-ea452d7e044c
github.com/networkservicemesh/sdk v0.0.0-20210528062336-1864bcaad34d
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/sirupsen/logrus v1.7.0
github.com/spiffe/go-spiffe/v2 v2.0.0-beta.2
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,10 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi
github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
github.com/nats-io/stan.go v0.6.0/go.mod h1:eIcD5bi3pqbHT/xIIvXMwvzXYElgouBvaVRftaE+eac=
github.com/networkservicemesh/api v0.0.0-20210523193133-30a6f075c760 h1:WHTaQNyvWNPddG13AYchBSyarOgGRHUQ19bJ3kS8ciQ=
github.com/networkservicemesh/api v0.0.0-20210523193133-30a6f075c760/go.mod h1:B6meq/SWjWR6bGXZdXPfbOeaBK+T1JayLdtEJQCsXKU=
github.com/networkservicemesh/sdk v0.0.0-20210527091756-a61f17ea5a13 h1:kDnzvqFdKjgGD4tj229ayChMX9Uh/Mdyw5UGMX6TPvI=
github.com/networkservicemesh/sdk v0.0.0-20210527091756-a61f17ea5a13/go.mod h1:5xSpb6F7ZaSC1vsoRjavnR0mvELqr1jArDelVWwjkHE=
github.com/networkservicemesh/api v0.0.0-20210527182901-ea452d7e044c h1:ObRpCyzBCZmN/VBFwb75ZLDRNDbPtjk+ctip8HZu91c=
github.com/networkservicemesh/api v0.0.0-20210527182901-ea452d7e044c/go.mod h1:B6meq/SWjWR6bGXZdXPfbOeaBK+T1JayLdtEJQCsXKU=
github.com/networkservicemesh/sdk v0.0.0-20210528062336-1864bcaad34d h1:4/CFuhVtaWlexzCQBV/xMmNZqrucWmtg+Y2hEg/pn9s=
github.com/networkservicemesh/sdk v0.0.0-20210528062336-1864bcaad34d/go.mod h1:rfa69tGN56YTXPtU9v9nukCZqIwMn3YyTX58j3mb1LI=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
Expand Down
81 changes: 29 additions & 52 deletions internal/manager/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ type manager struct {
ctx context.Context
configuration *config.Config
cancelFunc context.CancelFunc
registryCC *grpc.ClientConn
mgr nsmgr.Nsmgr
source *workloadapi.X509Source
svid *x509svid.SVID
Expand Down Expand Up @@ -107,41 +106,41 @@ func RunNsmgr(ctx context.Context, configuration *config.Config) error {
return err
}

if err := m.connectRegistry(); err != nil {
log.FromContext(traceCtx).Errorf("failed to connect registry %v", err)
return err
}

// Construct NSMgr chain
var regConn grpc.ClientConnInterface
if m.registryCC != nil {
regConn = m.registryCC
}

clientOptions := append(
opentracing.WithTracingDial(),
// Default client security call options
grpc.WithTransportCredentials(
GrpcfdTransportCredentials(
credentials.NewTLS(tlsconfig.MTLSClientConfig(m.source, m.source, tlsconfig.AuthorizeAny())),
),
),
grpc.WithDefaultCallOptions(
grpc.WaitForReady(true),
grpc.PerRPCCredentials(token.NewPerRPCCredentials(spiffejwt.TokenGeneratorFunc(m.source, configuration.MaxTokenLifetime))),
// Default client security call options
creds := grpc.WithTransportCredentials(
GrpcfdTransportCredentials(
credentials.NewTLS(tlsconfig.MTLSClientConfig(m.source, m.source, tlsconfig.AuthorizeAny())),
),
grpcfd.WithChainStreamInterceptor(),
grpcfd.WithChainUnaryInterceptor(),
)
m.mgr = nsmgr.NewServer(m.ctx,
spiffejwt.TokenGeneratorFunc(m.source, m.configuration.MaxTokenLifetime),

mgrOptions := []nsmgr.Option{
nsmgr.WithName(configuration.Name),
nsmgr.WithURL(m.getPublicURL()),
nsmgr.WithAuthorizeServer(authorize.NewServer()),
nsmgr.WithRegistryClientConn(regConn),
nsmgr.WithConnectOptions(
connect.WithDialOptions(clientOptions...)),
)
connect.WithDialOptions(append(
opentracing.WithTracingDial(),
creds,
grpc.WithDefaultCallOptions(
grpc.WaitForReady(true),
grpc.PerRPCCredentials(token.NewPerRPCCredentials(spiffejwt.TokenGeneratorFunc(m.source, configuration.MaxTokenLifetime))),
),
grpcfd.WithChainStreamInterceptor(),
grpcfd.WithChainUnaryInterceptor(),
)...)),
}

if configuration.RegistryURL.String() != "" {
mgrOptions = append(mgrOptions, nsmgr.WithRegistry(&configuration.RegistryURL, append(
opentracing.WithTracingDial(),
creds,
grpc.WithDefaultCallOptions(
grpc.WaitForReady(true),
),
)...))
}

m.mgr = nsmgr.NewServer(m.ctx, spiffejwt.TokenGeneratorFunc(m.source, m.configuration.MaxTokenLifetime), mgrOptions...)

// If we Listen on Unix socket for local connections we need to be sure folder are exist
createListenFolders(configuration)
Expand Down Expand Up @@ -199,28 +198,6 @@ func waitErrChan(ctx context.Context, errChan <-chan error, m *manager) {
}
}

func (m *manager) connectRegistry() (err error) {
if m.configuration.RegistryURL.String() == "" {
logrus.Infof("NSM: No NSM registry passed, use memory registry")
m.registryCC = nil
return nil
}
traceCtx, finish := withTraceLogger(m.ctx, "dial-registry")
defer finish()

creds := grpc.WithTransportCredentials(GrpcfdTransportCredentials(credentials.NewTLS(tlsconfig.MTLSClientConfig(m.source, m.source, tlsconfig.AuthorizeAny()))))
ctx, cancel := context.WithTimeout(traceCtx, 5*time.Second)
defer cancel()

logrus.Infof("NSM: Connecting to NSE registry %v", m.configuration.RegistryURL.String())
options := append(opentracing.WithTracingDial(), creds, grpc.WithDefaultCallOptions(grpc.WaitForReady(true)))
m.registryCC, err = grpc.DialContext(ctx, grpcutils.URLToTarget(&m.configuration.RegistryURL), options...)
if err != nil {
log.FromContext(traceCtx).Errorf("failed to dial NSE NsmgrRegistry: %v", err)
}
return
}

func (m *manager) defaultURL() *url.URL {
for i := 0; i < len(m.configuration.ListenOn); i++ {
u := &m.configuration.ListenOn[i]
Expand Down
4 changes: 2 additions & 2 deletions test/client_endpoint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ func (f *NsmgrTestSuite) TestNSmgrEndpointSendFD() {
require.NotNil(t, nseErr)
require.NotNil(t, nseGRPC)

nsRegClient := registryclient.NewNetworkServiceRegistryClient(nsmClient)
nseRegClient := registryclient.NewNetworkServiceEndpointRegistryClient(ctx, nsmClient)
nsRegClient := registryclient.NewNetworkServiceRegistryClient(ctx, &setup.configuration.ListenOn[0], registryclient.WithDialOptions(setup.dialOptions()...))
nseRegClient := registryclient.NewNetworkServiceEndpointRegistryClient(ctx, &setup.configuration.ListenOn[0], registryclient.WithDialOptions(setup.dialOptions()...))
logrus.Infof("Register network service")
ns, nserr := nsRegClient.Register(context.Background(), &registry.NetworkService{
Name: "my-service",
Expand Down
13 changes: 9 additions & 4 deletions test/test_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import (
"google.golang.org/grpc/health/grpc_health_v1"

"github.com/networkservicemesh/api/pkg/api/registry"

"github.com/networkservicemesh/cmd-nsmgr/internal/config"
"github.com/networkservicemesh/cmd-nsmgr/internal/manager"
mockReg "github.com/networkservicemesh/cmd-nsmgr/test/mock/registry"
Expand Down Expand Up @@ -162,17 +163,21 @@ func (s *testSetup) CheckHeal() {
func (s *testSetup) newClient(ctx context.Context) grpc.ClientConnInterface {
clientCtx, clientCancelFunc := context.WithTimeout(ctx, 5*time.Second)
defer clientCancelFunc()
grpcCC, err := grpc.DialContext(clientCtx, grpcutils.URLToTarget(&s.configuration.ListenOn[0]),
grpcCC, err := grpc.DialContext(clientCtx, grpcutils.URLToTarget(&s.configuration.ListenOn[0]), s.dialOptions()...)
require.Nil(s.t, err)
return grpcCC
}

func (s *testSetup) dialOptions() []grpc.DialOption {
return []grpc.DialOption{
grpc.WithTransportCredentials(manager.GrpcfdTransportCredentials(credentials.NewTLS(tlsconfig.MTLSClientConfig(s.Source, s.Source, tlsconfig.AuthorizeAny())))),
grpc.WithDefaultCallOptions(
grpc.WaitForReady(true),
grpc.PerRPCCredentials(token.NewPerRPCCredentials(spiffejwt.TokenGeneratorFunc(s.Source, s.configuration.MaxTokenLifetime))),
),
grpcfd.WithChainStreamInterceptor(),
grpcfd.WithChainUnaryInterceptor(),
)
require.Nil(s.t, err)
return grpcCC
}
}

func (s *testSetup) NewRegistryClient(ctx context.Context) registry.NetworkServiceEndpointRegistryClient {
Expand Down

0 comments on commit ce5b294

Please sign in to comment.