Spaces:
Sleeping
Sleeping
package grpccoordinator | |
import ( | |
"io" | |
"time" | |
"github.com/chroma/chroma-coordinator/cmd/flag" | |
"github.com/chroma/chroma-coordinator/internal/grpccoordinator" | |
"github.com/chroma/chroma-coordinator/internal/grpccoordinator/grpcutils" | |
"github.com/chroma/chroma-coordinator/internal/utils" | |
"github.com/spf13/cobra" | |
) | |
var ( | |
conf = grpccoordinator.Config{ | |
GrpcConfig: &grpcutils.GrpcConfig{}, | |
} | |
Cmd = &cobra.Command{ | |
Use: "coordinator", | |
Short: "Start a coordinator", | |
Long: `Long description`, | |
Run: exec, | |
} | |
) | |
func init() { | |
// GRPC | |
flag.GRPCAddr(Cmd, &conf.GrpcConfig.BindAddress) | |
// System Catalog | |
Cmd.Flags().StringVar(&conf.SystemCatalogProvider, "system-catalog-provider", "memory", "System catalog provider") | |
Cmd.Flags().StringVar(&conf.Username, "username", "root", "MetaTable username") | |
Cmd.Flags().StringVar(&conf.Password, "password", "", "MetaTable password") | |
Cmd.Flags().StringVar(&conf.Address, "db-address", "127.0.0.1", "MetaTable db address") | |
Cmd.Flags().IntVar(&conf.Port, "db-port", 5432, "MetaTable db port") | |
Cmd.Flags().StringVar(&conf.DBName, "db-name", "", "MetaTable db name") | |
Cmd.Flags().IntVar(&conf.MaxIdleConns, "max-idle-conns", 10, "MetaTable max idle connections") | |
Cmd.Flags().IntVar(&conf.MaxOpenConns, "max-open-conns", 10, "MetaTable max open connections") | |
// Pulsar | |
Cmd.Flags().StringVar(&conf.PulsarAdminURL, "pulsar-admin-url", "http://localhost:8080", "Pulsar admin url") | |
Cmd.Flags().StringVar(&conf.PulsarURL, "pulsar-url", "pulsar://localhost:6650", "Pulsar url") | |
Cmd.Flags().StringVar(&conf.PulsarTenant, "pulsar-tenant", "default", "Pulsar tenant") | |
Cmd.Flags().StringVar(&conf.PulsarNamespace, "pulsar-namespace", "default", "Pulsar namespace") | |
// Notification | |
Cmd.Flags().StringVar(&conf.NotificationStoreProvider, "notification-store-provider", "memory", "Notification store provider") | |
Cmd.Flags().StringVar(&conf.NotifierProvider, "notifier-provider", "memory", "Notifier provider") | |
Cmd.Flags().StringVar(&conf.NotificationTopic, "notification-topic", "chroma-notification", "Notification topic") | |
// Memberlist | |
Cmd.Flags().StringVar(&conf.KubernetesNamespace, "kubernetes-namespace", "chroma", "Kubernetes namespace") | |
Cmd.Flags().StringVar(&conf.WorkerMemberlistName, "worker-memberlist-name", "worker-memberlist", "Worker memberlist name") | |
Cmd.Flags().StringVar(&conf.AssignmentPolicy, "assignment-policy", "rendezvous", "Assignment policy") | |
Cmd.Flags().DurationVar(&conf.WatchInterval, "watch-interval", 60*time.Second, "Watch interval") | |
} | |
func exec(*cobra.Command, []string) { | |
utils.RunProcess(func() (io.Closer, error) { | |
return grpccoordinator.New(conf) | |
}) | |
} | |