Skip to content

Commit

Permalink
set the configured protocol transport for service metadata
Browse files Browse the repository at this point in the history
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
  • Loading branch information
butonic committed Jun 27, 2024
1 parent b78910d commit fb5cbd3
Show file tree
Hide file tree
Showing 25 changed files with 43 additions and 28 deletions.
6 changes: 6 additions & 0 deletions changelog/unreleased/set-service-transport.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Enhancement: We now set the configured protocol transport for service metadata

This allows using `dns` or `unix` as the grpc protocol for services. Requires reva changes to have an effect

https://github.com/owncloud/ocis/pull/9490
https://github.com/cs3org/reva/pull/4744
18 changes: 12 additions & 6 deletions ocis-pkg/registry/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ import (

mRegistry "go-micro.dev/v4/registry"
"go-micro.dev/v4/util/addr"
maddr "go-micro.dev/v4/util/addr"
)

func BuildGRPCService(serviceID, uuid, address string, version string) *mRegistry.Service {
func BuildGRPCService(serviceID, uuid, transport, address string, version string) *mRegistry.Service {
var host string
var port int

Expand All @@ -22,20 +23,25 @@ func BuildGRPCService(serviceID, uuid, address string, version string) *mRegistr
host = parts[0]
}

addr, err := addr.Extract(host)
if err != nil {
addr = host
addr := host
if transport != "unix" {
var err error
addr, err = maddr.Extract(host)
if err != nil {
addr = host
}
addr = net.JoinHostPort(addr, fmt.Sprint(port))
}

node := &mRegistry.Node{
Id: serviceID + "-" + uuid,
Address: net.JoinHostPort(addr, fmt.Sprint(port)),
Address: addr,
Metadata: make(map[string]string),
}

node.Metadata["registry"] = GetRegistry().String()
node.Metadata["server"] = "grpc"
node.Metadata["transport"] = "grpc"
node.Metadata["transport"] = transport
node.Metadata["protocol"] = "grpc"

return &mRegistry.Service{
Expand Down
2 changes: 1 addition & 1 deletion services/app-provider/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/app-registry/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func Server(cfg *config.Config) *cli.Command {
cancel()
})

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/auth-basic/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/auth-bearer/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/auth-machine/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/auth-service/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ func DefaultConfig() *config.Config {
},
GRPC: config.GRPC{
Addr: "127.0.0.1:9301",
Protocol: "tcp",
Namespace: "com.owncloud.api",
},
HTTP: config.HTTP{
Expand Down
4 changes: 3 additions & 1 deletion services/collaboration/pkg/config/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package config

// GRPC defines the available grpc configuration.
type GRPC struct {
Addr string `yaml:"addr" env:"COLLABORATION_GRPC_ADDR" desc:"The bind address of the GRPC service." introductionVersion:"6.0.0"`
Addr string `yaml:"addr" env:"COLLABORATION_GRPC_ADDR" desc:"The bind address of the GRPC service." introductionVersion:"6.0.0"`
Protocol string `yaml:"protocol" env:"COLLABORATION_GRPC_PROTOCOL" desc:"The transport protocol of the GRPC service." introductionVersion:"%%NEXT%%"`

Namespace string `yaml:"-"`
}
2 changes: 1 addition & 1 deletion services/collaboration/pkg/helpers/registration.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import (
// There are no explicit requirements for the context, and it will be passed
// without changes to the underlying RegisterService method.
func RegisterOcisService(ctx context.Context, cfg *config.Config, logger log.Logger) error {
svc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name+"."+cfg.App.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
svc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name+"."+cfg.App.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
return registry.RegisterService(ctx, svc, logger)
}

Expand Down
2 changes: 1 addition & 1 deletion services/gateway/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func Server(cfg *config.Config) *cli.Command {
cancel()
})

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/graph/pkg/service/v0/graph_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func init() {
r := registry.GetRegistry(registry.Inmemory())
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "")
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "", "")
service.Nodes = []*mRegistry.Node{{
Address: "any",
}}
Expand Down
2 changes: 1 addition & 1 deletion services/groups/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func init() {
r := registry.GetRegistry(registry.Inmemory())
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "")
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "", "")
service.Nodes = []*mRegistry.Node{{
Address: "any",
}}
Expand Down
2 changes: 1 addition & 1 deletion services/ocm/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/search/pkg/search/search_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func init() {
r := registry.GetRegistry(registry.Inmemory())
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "")
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "", "")
service.Nodes = []*mRegistry.Node{{
Address: "any",
}}
Expand Down
2 changes: 1 addition & 1 deletion services/sharing/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/storage-publiclink/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/storage-shares/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/storage-system/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/storage-users/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down
2 changes: 1 addition & 1 deletion services/storage-users/pkg/task/task_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func init() {
r := registry.GetRegistry(registry.Inmemory())
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "")
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "", "")
service.Nodes = []*mRegistry.Node{{
Address: "any",
}}
Expand Down
2 changes: 1 addition & 1 deletion services/userlog/pkg/service/service_suit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func init() {
r := registry.GetRegistry(registry.Inmemory())
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "")
service := registry.BuildGRPCService("com.owncloud.api.gateway", "", "", "", "")
service.Nodes = []*mRegistry.Node{{
Address: "any",
}}
Expand Down
2 changes: 1 addition & 1 deletion services/users/pkg/command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func Server(cfg *config.Config) *cli.Command {
sync.Trap(&gr, cancel)
}

grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Addr, version.GetString())
grpcSvc := registry.BuildGRPCService(cfg.GRPC.Namespace+"."+cfg.Service.Name, uuid.Must(uuid.NewV4()).String(), cfg.GRPC.Protocol, cfg.GRPC.Addr, version.GetString())
if err := registry.RegisterService(ctx, grpcSvc, logger); err != nil {
logger.Fatal().Err(err).Msg("failed to register the grpc service")
}
Expand Down

0 comments on commit fb5cbd3

Please sign in to comment.