Skip to content

Commit

Permalink
Update edge config and spin-up time
Browse files Browse the repository at this point in the history
  • Loading branch information
carabasdaniel committed Jun 14, 2023
1 parent cb801ef commit 9fe4dc4
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 45 deletions.
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module github.com/aserto-dev/topaz
go 1.19

// replace github.com/aserto-dev/go-edge-ds => ../go-edge-ds

// replace github.com/aserto-dev/go-directory-cli => ../go-directory-cli
// replace github.com/aserto-dev/go-aserto => ../go-aserto
// replace github.com/aserto-dev/runtime => ../runtime
Expand All @@ -16,7 +17,7 @@ require (
github.com/aserto-dev/go-authorizer v0.20.2
github.com/aserto-dev/go-directory v0.20.6
github.com/aserto-dev/go-directory-cli v0.20.13
github.com/aserto-dev/go-edge-ds v0.20.8
github.com/aserto-dev/go-edge-ds v0.20.9-0.20230614071414-fb54bb0a6718
github.com/aserto-dev/go-http-metrics v0.10.1-20221024-1
github.com/aserto-dev/header v0.0.5
github.com/aserto-dev/logger v0.0.3
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ github.com/aserto-dev/go-directory v0.20.6 h1:D8ttv2YfYUBFr+stxZ6ZXGaycw66MGb0Oo
github.com/aserto-dev/go-directory v0.20.6/go.mod h1:gjg6wZezLGXJj1LBEXaJUS9kpOnaDWeFUYhDG1TAkTY=
github.com/aserto-dev/go-directory-cli v0.20.13 h1:TepHQflnC8/czC7vhGe2wkP/EKgyJ/Q+S3fT6jrcVz8=
github.com/aserto-dev/go-directory-cli v0.20.13/go.mod h1:wZUFVIF2gYZ7GfelEwy4ND5RX38kYqjVKEMvfo8A+xo=
github.com/aserto-dev/go-edge-ds v0.20.8 h1:dzFyeKSiwPO9oMqxi+RAWcVJEE2dtneObFmH3+S4xAE=
github.com/aserto-dev/go-edge-ds v0.20.8/go.mod h1:DyNugaGxvXbDHA93WcaFh6nEgRAAswC82AncND5RnyE=
github.com/aserto-dev/go-edge-ds v0.20.9-0.20230614071414-fb54bb0a6718 h1:5ydem983PFh6hp9R0yvYrreYR2KbWFlDI+lbadxMPBU=
github.com/aserto-dev/go-edge-ds v0.20.9-0.20230614071414-fb54bb0a6718/go.mod h1:DyNugaGxvXbDHA93WcaFh6nEgRAAswC82AncND5RnyE=
github.com/aserto-dev/go-http-metrics v0.10.1-20221024-1 h1:nONd24V5nyJ0IIw8QE+OKv30YuHOTNbJ4FsvczLaM8o=
github.com/aserto-dev/go-http-metrics v0.10.1-20221024-1/go.mod h1:QnWF5/X2U/kmbu7GEw+zupvqX2hIthDjyXlRTwt2zEI=
github.com/aserto-dev/header v0.0.5 h1:nEvYNgBoIwomxuvo14JuQ/ZqGGHU67NKuZyNdW4n4FU=
Expand Down
4 changes: 2 additions & 2 deletions go.work.sum
Original file line number Diff line number Diff line change
Expand Up @@ -295,10 +295,10 @@ github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgI
github.com/aserto-dev/aserto-go v0.8.14-0.20221018123009-a56db85a7ed3 h1:Kp2Ojrem4ixQEQYaxtUiR2RAW6HnQCastADjO3VOJOQ=
github.com/aserto-dev/aserto-grpc v0.1.1 h1:iILD2u0yjHdibBsG7CchkiudUmwvNhBmPUN7kNm9cvM=
github.com/aserto-dev/errors v0.0.2/go.mod h1:TBlc5z9t1ClYehyJT614pJ0jknkCFWo7sdyAFkFEndY=
github.com/aserto-dev/errors v0.0.5 h1:9sSeCKZbPEs8CKBj9SzKLoyxsmhimlKuygZd3cRX2zY=
github.com/aserto-dev/errors v0.0.5/go.mod h1:kenI1gamsemaR2wS+M2un0kXIJ9exTrmeRT/fCFwlWc=
github.com/aserto-dev/go-directory-cli v0.20.12 h1:HQX8RNGXvwG1nGkRZYvzl/BOsA/nTb5Bupx1Oe9n/8k=
github.com/aserto-dev/go-directory-cli v0.20.12/go.mod h1:wZUFVIF2gYZ7GfelEwy4ND5RX38kYqjVKEMvfo8A+xo=
github.com/aserto-dev/go-edge-ds v0.20.8 h1:dzFyeKSiwPO9oMqxi+RAWcVJEE2dtneObFmH3+S4xAE=
github.com/aserto-dev/go-edge-ds v0.20.8/go.mod h1:DyNugaGxvXbDHA93WcaFh6nEgRAAswC82AncND5RnyE=
github.com/aserto-dev/runtime v0.47.3 h1:KEXQ5bFImIWAqUM5uIPDQ94zeHYScalhWziu+GAqRzk=
github.com/aserto-dev/runtime v0.47.3/go.mod h1:0iis95JxPIOPQvdmS0+zJnhCPLrz3bkinFNzDtbwuak=
github.com/aserto-dev/runtime v0.51.0 h1:bJPCP5v0nY1NS1t4q3+1TSf6WA+wQorTXRiD8UQP+QY=
Expand Down
55 changes: 28 additions & 27 deletions pkg/app/authorizer.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package app

import (
"context"
"strconv"
"strings"
"time"

edgeServer "github.com/aserto-dev/go-edge-ds/pkg/server"
edge "github.com/aserto-dev/go-edge-ds/pkg/server"
"github.com/aserto-dev/topaz/pkg/app/server"
"github.com/aserto-dev/topaz/pkg/cc/config"
"github.com/aserto-dev/topaz/resolvers"
Expand All @@ -25,6 +25,22 @@ type Authorizer struct {

// Start starts all services required by the engine.
func (e *Authorizer) Start() error {
err := e.configEdge()
if err != nil {
return err
}

err = e.Server.Start(e.Context)
if err != nil {
return errors.Wrap(err, "failed to start engine server")
}

return nil
}

const connectionTimeout time.Duration = 5 * time.Second

func (e *Authorizer) configEdge() error {
remoteConfig, err := e.Configuration.Directory.ToRemoteConfig()
if err != nil {
return err
Expand All @@ -33,36 +49,21 @@ func (e *Authorizer) Start() error {
if err != nil {
return err
}
if (strings.Contains(remoteConfig.Address, "localhost") || strings.Contains(remoteConfig.Address, "0.0.0.0")) &&
edgeConfig.DBPath != "" {
addr := strings.Split(remoteConfig.Address, ":")
if len(addr) != 2 {
return errors.Errorf("invalid remote address - should contain <host>:<port>")
if len(edgeConfig.Services) == 0 {
edgeConfig.Services = map[string]int{
"reader": 9292,
"writer": 9292,
"exporter": 9292,
"importer": 9292,
}

port, err := strconv.Atoi(addr[1])
}
if (strings.Contains(remoteConfig.Address, "localhost") || strings.Contains(remoteConfig.Address, "0.0.0.0")) && edgeConfig.DBPath != "" {
edge, err := edge.NewEdgeServer(*edgeConfig, &e.Configuration.API.GRPC.Certs, e.Logger)
if err != nil {
return err
}
e.Server.RegisterServer("edgeServer", edge.Start, edge.Stop)

edge, err := edgeServer.NewEdgeServer(
*edgeConfig,
&e.Configuration.API.GRPC.Certs,
addr[0],
port,
e.Logger,
)
if err != nil {
return errors.Wrap(err, "failed to create edge directory server")
}

e.Server.RegisterServer("edgeDirServer", edge.Start, edge.Stop)
}

err = e.Server.Start(e.Context)
if err != nil {
return errors.Wrap(err, "failed to start engine server")
}

return nil
}
3 changes: 2 additions & 1 deletion pkg/app/directory/simple_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ type Resolver struct {

var _ resolvers.DirectoryResolver = &Resolver{}

// The simple directory resolver returns a simple directory reader client.
func NewResolver(logger *zerolog.Logger, cfg *grpcc.Config) resolvers.DirectoryResolver {
return &Resolver{
logger: logger,
Expand All @@ -42,7 +43,7 @@ func connect(logger *zerolog.Logger, cfg *grpcc.Config) (*grpcc.Connection, erro
return conn, nil
}

// GetDS - simple.
// GetDS - returns a directory reader service client.
func (r *Resolver) GetDS(ctx context.Context) (ds2.ReaderClient, error) {
if r.dirConn == nil {
dirConn, err := connect(r.logger, r.cfg)
Expand Down
24 changes: 12 additions & 12 deletions pkg/app/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,18 @@ func (s *Server) Start(ctx context.Context) error {

grpc.EnableTracing = true

// Start additional servers first.
for _, regServer := range s.registeredServers {
regSrv := regServer
s.errGroup.Go(func() error {
err := regSrv.start(ctx)
if err != nil {
return errors.Wrapf(err, "failed to start [%s]", regSrv.name)
}
return nil
})
}

if err := s.startHealthServer(); err != nil {
return err
}
Expand All @@ -114,18 +126,6 @@ func (s *Server) Start(ctx context.Context) error {
return err
}

// Start additional servers.
for _, regServer := range s.registeredServers {
regSrv := regServer
s.errGroup.Go(func() error {
err := regSrv.start(ctx)
if err != nil {
return errors.Wrapf(err, "failed to start [%s]", regSrv.name)
}
return nil
})
}

s.healthServer.Server.SetServingStatus(fmt.Sprintf("grpc.health.v1.%s", svcName), healthpb.HealthCheckResponse_SERVING)

return nil
Expand Down

0 comments on commit 9fe4dc4

Please sign in to comment.