github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/tools/blocksconvert/shared_config.go (about) 1 package blocksconvert 2 3 import ( 4 "context" 5 "flag" 6 7 "github.com/go-kit/log" 8 "github.com/pkg/errors" 9 "github.com/prometheus/client_golang/prometheus" 10 "github.com/thanos-io/thanos/pkg/objstore" 11 12 "github.com/cortexproject/cortex/pkg/chunk" 13 "github.com/cortexproject/cortex/pkg/chunk/storage" 14 "github.com/cortexproject/cortex/pkg/storage/bucket" 15 ) 16 17 type SharedConfig struct { 18 SchemaConfig chunk.SchemaConfig // Flags registered by main.go 19 StorageConfig storage.Config 20 21 Bucket bucket.Config 22 BucketPrefix string 23 } 24 25 func (cfg *SharedConfig) RegisterFlags(f *flag.FlagSet) { 26 cfg.SchemaConfig.RegisterFlags(f) 27 cfg.Bucket.RegisterFlagsWithPrefix("blocks-storage.", f) 28 cfg.StorageConfig.RegisterFlags(f) 29 30 f.StringVar(&cfg.BucketPrefix, "blocksconvert.bucket-prefix", "migration", "Prefix in the bucket for storing plan files.") 31 } 32 33 func (cfg *SharedConfig) GetBucket(l log.Logger, reg prometheus.Registerer) (objstore.Bucket, error) { 34 if err := cfg.Bucket.Validate(); err != nil { 35 return nil, errors.Wrap(err, "invalid bucket config") 36 } 37 38 bucket, err := bucket.NewClient(context.Background(), cfg.Bucket, "bucket", l, reg) 39 if err != nil { 40 return nil, errors.Wrap(err, "failed to create bucket") 41 } 42 43 return bucket, nil 44 }