mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdmain: add register,resolver flags
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
This commit is contained in:
parent
f862b47e92
commit
095407df58
@ -27,20 +27,22 @@ import (
|
|||||||
"github.com/coreos/etcd/pkg/transport"
|
"github.com/coreos/etcd/pkg/transport"
|
||||||
"github.com/coreos/etcd/proxy/grpcproxy"
|
"github.com/coreos/etcd/proxy/grpcproxy"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
|
||||||
"google.golang.org/grpc"
|
|
||||||
|
|
||||||
"github.com/cockroachdb/cmux"
|
"github.com/cockroachdb/cmux"
|
||||||
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
grpcProxyListenAddr string
|
grpcProxyListenAddr string
|
||||||
grpcProxyEndpoints []string
|
grpcProxyEndpoints []string
|
||||||
grpcProxyCert string
|
grpcProxyCert string
|
||||||
grpcProxyKey string
|
grpcProxyKey string
|
||||||
grpcProxyCA string
|
grpcProxyCA string
|
||||||
|
grpcProxyAdvertiseClientURL string
|
||||||
|
grpcProxyResolverPrefix string
|
||||||
|
grpcProxyResolverTTL int
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -70,11 +72,27 @@ func newGRPCProxyStartCommand() *cobra.Command {
|
|||||||
cmd.Flags().StringVar(&grpcProxyCert, "cert", "", "identify secure connections with etcd servers using this TLS certificate file")
|
cmd.Flags().StringVar(&grpcProxyCert, "cert", "", "identify secure connections with etcd servers using this TLS certificate file")
|
||||||
cmd.Flags().StringVar(&grpcProxyKey, "key", "", "identify secure connections with etcd servers using this TLS key file")
|
cmd.Flags().StringVar(&grpcProxyKey, "key", "", "identify secure connections with etcd servers using this TLS key file")
|
||||||
cmd.Flags().StringVar(&grpcProxyCA, "cacert", "", "verify certificates of TLS-enabled secure etcd servers using this CA bundle")
|
cmd.Flags().StringVar(&grpcProxyCA, "cacert", "", "verify certificates of TLS-enabled secure etcd servers using this CA bundle")
|
||||||
|
cmd.Flags().StringVar(&grpcProxyAdvertiseClientURL, "advertise-client-url", "127.0.0.1:23790", "advertise address to register (must be reachable by client)")
|
||||||
|
cmd.Flags().StringVar(&grpcProxyResolverPrefix, "resolver-prefix", "", "prefix to use for registering proxy (must be shared with other grpc-proxy members)")
|
||||||
|
cmd.Flags().IntVar(&grpcProxyResolverTTL, "resolver-ttl", 0, "specify TTL, in seconds, when registering proxy endpoints")
|
||||||
|
|
||||||
return &cmd
|
return &cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
func startGRPCProxy(cmd *cobra.Command, args []string) {
|
func startGRPCProxy(cmd *cobra.Command, args []string) {
|
||||||
|
if grpcProxyResolverPrefix != "" && grpcProxyResolverTTL < 1 {
|
||||||
|
fmt.Fprintln(os.Stderr, fmt.Errorf("invalid resolver-ttl %d", grpcProxyResolverTTL))
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
if grpcProxyResolverPrefix == "" && grpcProxyResolverTTL > 0 {
|
||||||
|
fmt.Fprintln(os.Stderr, fmt.Errorf("invalid resolver-prefix %q", grpcProxyResolverPrefix))
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
if grpcProxyResolverPrefix != "" && grpcProxyResolverTTL > 0 && grpcProxyAdvertiseClientURL == "" {
|
||||||
|
fmt.Fprintln(os.Stderr, fmt.Errorf("invalid advertise-client-url %q", grpcProxyAdvertiseClientURL))
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
l, err := net.Listen("tcp", grpcProxyListenAddr)
|
l, err := net.Listen("tcp", grpcProxyListenAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, err)
|
fmt.Fprintln(os.Stderr, err)
|
||||||
@ -105,7 +123,10 @@ func startGRPCProxy(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
kvp, _ := grpcproxy.NewKvProxy(client)
|
kvp, _ := grpcproxy.NewKvProxy(client)
|
||||||
watchp, _ := grpcproxy.NewWatchProxy(client)
|
watchp, _ := grpcproxy.NewWatchProxy(client)
|
||||||
clusterp := grpcproxy.NewClusterProxy(client)
|
if grpcProxyResolverPrefix != "" {
|
||||||
|
grpcproxy.Register(client, grpcProxyResolverPrefix, grpcProxyAdvertiseClientURL, grpcProxyResolverTTL)
|
||||||
|
}
|
||||||
|
clusterp, _ := grpcproxy.NewClusterProxy(client, grpcProxyAdvertiseClientURL, grpcProxyResolverPrefix)
|
||||||
leasep, _ := grpcproxy.NewLeaseProxy(client)
|
leasep, _ := grpcproxy.NewLeaseProxy(client)
|
||||||
mainp := grpcproxy.NewMaintenanceProxy(client)
|
mainp := grpcproxy.NewMaintenanceProxy(client)
|
||||||
authp := grpcproxy.NewAuthProxy(client)
|
authp := grpcproxy.NewAuthProxy(client)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user