Merge pull request #1697 from owncloud/use-registry-interface

Use registry interface value
This commit is contained in:
Jörn Friedrich Dreyer
2021-02-22 20:35:23 +01:00
committed by GitHub
15 changed files with 33 additions and 17 deletions

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListAccountsWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.GRPC.Namespace + "." + cfg.Server.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get accounts services from the registry: %v", err))

View File

@@ -0,0 +1,6 @@
Enhancement: Add initial nats and kubernetes registry support
We added initial support to use nats and kubernetes as a service registry using `MICRO_REGISTRY=nats` and `MICRO_REGISTRY=kubernetes` respectively.
Multiple nodes can be given with `MICRO_REGISTRY_ADDRESS=1.2.3.4,5.6.7.8,9.10.11.12`.
https://github.com/owncloud/ocis/pull/1697

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListIDPWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.Service.Namespace + "." + cfg.Service.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get idp services from the registry: %v", err))

View File

@@ -5,7 +5,9 @@ import (
"strings"
etcdr "github.com/asim/go-micro/plugins/registry/etcd/v3"
kubernetesr "github.com/asim/go-micro/plugins/registry/kubernetes/v3"
mdnsr "github.com/asim/go-micro/plugins/registry/mdns/v3"
natsr "github.com/asim/go-micro/plugins/registry/nats/v3"
"github.com/asim/go-micro/v3/registry"
)
@@ -18,11 +20,19 @@ var (
// GetRegistry returns a configured micro registry based on Micro env vars.
// It defaults to mDNS, so mind that systems with mDNS disabled by default (i.e SUSE) will have a hard time
// and it needs to explicitly use etcd. Os awareness for providing a working registry out of the box should be done.
func GetRegistry() *registry.Registry {
func GetRegistry() registry.Registry {
addresses := strings.Split(os.Getenv(registryAddressEnv), ",")
var r registry.Registry
switch os.Getenv(registryEnv) {
case "nats":
r = natsr.NewRegistry(
registry.Addrs(addresses...),
)
case "kubernetes":
r = kubernetesr.NewRegistry(
registry.Addrs(addresses...),
)
case "etcd":
r = etcdr.NewRegistry(
registry.Addrs(addresses...),
@@ -31,5 +41,5 @@ func GetRegistry() *registry.Registry {
r = mdnsr.NewRegistry()
}
return &r
return r
}

View File

@@ -39,7 +39,7 @@ func NewService(opts ...Option) Service {
micro.Version(sopts.Version),
micro.Context(sopts.Context),
micro.Flags(sopts.Flags...),
micro.Registry(*registry.GetRegistry()),
micro.Registry(registry.GetRegistry()),
micro.RegisterTTL(time.Second * 30),
micro.RegisterInterval(time.Second * 10),
micro.WrapHandler(prometheus.NewHandlerWrapper()),

View File

@@ -32,7 +32,7 @@ func NewService(opts ...Option) Service {
micro.Version(sopts.Version),
micro.Context(sopts.Context),
micro.Flags(sopts.Flags...),
micro.Registry(*registry.GetRegistry()),
micro.Registry(registry.GetRegistry()),
micro.RegisterTTL(time.Second * 30),
micro.RegisterInterval(time.Second * 10),
}

View File

@@ -44,7 +44,7 @@ func Execute() error {
)
}
//r := *registry.GetRegistry()
//r := registry.GetRegistry()
//opts := micro.Options{
// Registry: r,

View File

@@ -19,7 +19,7 @@ func VersionCommand(cfg *config.Config) *cli.Command {
Usage: "Lists running services with version",
Category: "Runtime",
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
serviceList, err := reg.ListServices()
if err != nil {
fmt.Println(fmt.Errorf("could not list services: %v", err))

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListOcsWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.Service.Namespace + "." + cfg.Service.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get ocs services from the registry: %v", err))

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListProxyWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.Service.Namespace + "." + cfg.Service.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get proxy services from the registry: %v", err))

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListSettingsWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.GRPC.Namespace + "." + cfg.Service.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get settings services from the registry: %v", err))

View File

@@ -19,14 +19,14 @@ func RegisterGRPCEndpoint(ctx context.Context, serviceID, uuid, addr string, log
Address: addr,
Metadata: make(map[string]string),
}
r := oregistry.GetRegistry()
node.Metadata["broker"] = broker.String()
node.Metadata["registry"] = registry.String()
node.Metadata["registry"] = r.String()
node.Metadata["server"] = "grpc"
node.Metadata["transport"] = "grpc"
node.Metadata["protocol"] = "grpc"
r := *oregistry.GetRegistry()
service := &registry.Service{
Name: serviceID,
Version: "",

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListStoreWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.Service.Namespace + "." + cfg.Service.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get store services from the registry: %v", err))

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListThumbnailsWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.Server.Namespace + "." + cfg.Server.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get thumbnails services from the registry: %v", err))

View File

@@ -19,7 +19,7 @@ func PrintVersion(cfg *config.Config) *cli.Command {
Usage: "Print the versions of the running instances",
Flags: flagset.ListWebdavWithConfig(cfg),
Action: func(c *cli.Context) error {
reg := *registry.GetRegistry()
reg := registry.GetRegistry()
services, err := reg.GetService(cfg.Service.Namespace + "." + cfg.Service.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get webdav services from the registry: %v", err))