From 84262a5fc457b7afeeb42fabe34244fca1ff0c9c Mon Sep 17 00:00:00 2001 From: confoc Date: Fri, 24 May 2024 11:25:47 +0800 Subject: [PATCH] fix --- cmd/gtctl/cluster_create.go | 6 ++++-- pkg/cluster/baremetal/cluster.go | 13 ++++++++++--- pkg/cluster/baremetal/create.go | 8 +++++--- pkg/components/metasrv.go | 13 ++++++++++--- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/cmd/gtctl/cluster_create.go b/cmd/gtctl/cluster_create.go index 7b18567b..6191266a 100644 --- a/cmd/gtctl/cluster_create.go +++ b/cmd/gtctl/cluster_create.go @@ -62,6 +62,7 @@ type clusterCreateCliOptions struct { Config string GreptimeBinVersion string EnableCache bool + metastore bool // Common options. Timeout int @@ -109,6 +110,7 @@ func NewCreateClusterCommand(l logger.Logger) *cobra.Command { cmd.Flags().StringVar(&options.GreptimeDBClusterValuesFile, "greptimedb-cluster-values-file", "", "The values file for greptimedb cluster.") cmd.Flags().StringVar(&options.EtcdClusterValuesFile, "etcd-cluster-values-file", "", "The values file for etcd cluster.") cmd.Flags().StringVar(&options.GreptimeDBOperatorValuesFile, "greptimedb-operator-values-file", "", "The values file for greptimedb operator.") + cmd.Flags().BoolVarP(&options.metastore, "memory-meta-storage", "m", false, "Bootstrap the whole cluster without installing etcd for testing purposes through using the memory storage of metasrv in bare-metal mode.") return cmd } @@ -182,7 +184,7 @@ func NewCluster(args []string, options *clusterCreateCliOptions, l logger.Logger l.V(0).Infof("Creating GreptimeDB cluster '%s' on bare-metal", logger.Bold(clusterName)) var opts []baremetal.Option - opts = append(opts, baremetal.WithEnableCache(options.EnableCache)) + opts = append(opts, baremetal.WithEnableCache(options.EnableCache), baremetal.Withmetastore(options.metastore)) if len(options.GreptimeBinVersion) > 0 { opts = append(opts, baremetal.WithGreptimeVersion(options.GreptimeBinVersion)) } @@ -199,7 +201,7 @@ func NewCluster(args []string, options *clusterCreateCliOptions, l logger.Logger opts = append(opts, baremetal.WithReplaceConfig(&cfg)) } - cluster, err = baremetal.NewCluster(l, clusterName, opts...) + cluster, err = baremetal.NewCluster(l, clusterName, opts...) //ops.metastore if err != nil { return err } diff --git a/pkg/cluster/baremetal/cluster.go b/pkg/cluster/baremetal/cluster.go index af48bdc9..28103da2 100644 --- a/pkg/cluster/baremetal/cluster.go +++ b/pkg/cluster/baremetal/cluster.go @@ -34,6 +34,7 @@ type Cluster struct { config *config.BareMetalClusterConfig createNoDirs bool enableCache bool + metastore bool am artifacts.Manager mm metadata.Manager @@ -54,9 +55,9 @@ type ClusterComponents struct { } func NewClusterComponents(config *config.BareMetalClusterComponentsConfig, workingDirs components.WorkingDirs, - wg *sync.WaitGroup, logger logger.Logger) *ClusterComponents { + wg *sync.WaitGroup, logger logger.Logger, metastore bool) *ClusterComponents { return &ClusterComponents{ - MetaSrv: components.NewMetaSrv(config.MetaSrv, workingDirs, wg, logger), + MetaSrv: components.NewMetaSrv(config.MetaSrv, workingDirs, wg, logger, metastore), Datanode: components.NewDataNode(config.Datanode, config.MetaSrv.ServerAddr, workingDirs, wg, logger), Frontend: components.NewFrontend(config.Frontend, config.MetaSrv.ServerAddr, workingDirs, wg, logger), Etcd: components.NewEtcd(workingDirs, wg, logger), @@ -84,6 +85,12 @@ func WithEnableCache(enableCache bool) Option { } } +func Withmetastore(metastore bool) Option { + return func(c *Cluster) { + c.metastore = metastore + } +} + func WithCreateNoDirs() Option { return func(c *Cluster) { c.createNoDirs = true @@ -136,7 +143,7 @@ func NewCluster(l logger.Logger, clusterName string, opts ...Option) (cluster.Op DataDir: csd.DataDir, LogsDir: csd.LogsDir, PidsDir: csd.PidsDir, - }, &c.wg, c.logger) + }, &c.wg, c.logger, c.metastore) return c, nil } diff --git a/pkg/cluster/baremetal/create.go b/pkg/cluster/baremetal/create.go index 086edbd3..800d8999 100644 --- a/pkg/cluster/baremetal/create.go +++ b/pkg/cluster/baremetal/create.go @@ -52,10 +52,12 @@ func (c *Cluster) Create(ctx context.Context, options *opt.CreateOptions) error return nil } - if err := withSpinner("Etcd Cluster", c.createEtcdCluster); err != nil { - return err + if c.metastore { + if err := withSpinner("Etcd Cluster", c.createEtcdCluster); err != nil { + return err + } } - if err := withSpinner("GreptimeDB Cluster", c.createCluster); err != nil { + if err := withSpinner("GreptimeDB Cluster", c.createCluster); err != nil { //options if err := c.Wait(ctx, true); err != nil { return err } diff --git a/pkg/components/metasrv.go b/pkg/components/metasrv.go index f99f6fed..a834e2b7 100644 --- a/pkg/components/metasrv.go +++ b/pkg/components/metasrv.go @@ -22,6 +22,7 @@ import ( "net" "net/http" "path" + "strconv" "sync" "time" @@ -36,17 +37,19 @@ type metaSrv struct { workingDirs WorkingDirs wg *sync.WaitGroup logger logger.Logger + metastore bool allocatedDirs } func NewMetaSrv(config *config.MetaSrv, workingDirs WorkingDirs, - wg *sync.WaitGroup, logger logger.Logger) ClusterComponent { + wg *sync.WaitGroup, logger logger.Logger, metastore bool) ClusterComponent { return &metaSrv{ config: config, workingDirs: workingDirs, wg: wg, logger: logger, + metastore: metastore, } } @@ -75,13 +78,12 @@ func (m *metaSrv) Start(ctx context.Context, stop context.CancelFunc, binary str return err } m.pidsDirs = append(m.pidsDirs, metaSrvPidDir) - option := &RunOptions{ Binary: binary, Name: dirName, logDir: metaSrvLogDir, pidDir: metaSrvPidDir, - args: m.BuildArgs(i, bindAddr), + args: m.BuildArgs(i, bindAddr), //如果我传进来就在这里 } if err := runBinary(ctx, stop, option, m.wg, m.logger); err != nil { return err @@ -126,6 +128,11 @@ func (m *metaSrv) BuildArgs(params ...interface{}) []string { args = GenerateAddrArg("--http-addr", m.config.HTTPAddr, nodeID, args) args = GenerateAddrArg("--bind-addr", bindAddr, nodeID, args) + if m.metastore == true { + metastore := strconv.FormatBool(m.metastore) + args = GenerateAddrArg("--use-memory-store", metastore, nodeID, args) + } + if len(m.config.Config) > 0 { args = append(args, fmt.Sprintf("-c=%s", m.config.Config)) }