From ecea6a9366f4bbe3c3cd95a0935c6f3bb685cc3a Mon Sep 17 00:00:00 2001 From: Will Assis <35489495+gassiss@users.noreply.github.com> Date: Wed, 30 Apr 2025 10:43:09 -0300 Subject: [PATCH] unified-storage: expose memberlist cluster label config (#104643) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * tweak ringKey/ringName for consistency and allow us to configure memberlist cluster label config * allow setting memberlist cluster label verification disabled field --------- Co-authored-by: Peter Štibraný --- pkg/server/memberlist.go | 2 ++ pkg/server/ring.go | 4 ++-- pkg/setting/setting.go | 32 ++++++++++++++------------ pkg/setting/setting_unified_storage.go | 2 ++ 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/pkg/server/memberlist.go b/pkg/server/memberlist.go index b80a54fd2f5..da8ee25c523 100644 --- a/pkg/server/memberlist.go +++ b/pkg/server/memberlist.go @@ -41,6 +41,8 @@ func toMemberlistConfig(cfg *setting.Cfg) *memberlist.KVConfig { memberlistKVcfg.Codecs = []codec.Codec{ ring.GetCodec(), } + memberlistKVcfg.ClusterLabel = cfg.MemberlistClusterLabel + memberlistKVcfg.ClusterLabelVerificationDisabled = cfg.MemberlistClusterLabelVerificationDisabled if cfg.MemberlistBindAddr != "" { memberlistKVcfg.TCPTransport.BindAddrs = []string{cfg.MemberlistBindAddr} } diff --git a/pkg/server/ring.go b/pkg/server/ring.go index a76e6fc3ef2..9a3bc05301d 100644 --- a/pkg/server/ring.go +++ b/pkg/server/ring.go @@ -24,8 +24,8 @@ import ( "google.golang.org/grpc/health/grpc_health_v1" ) -const ringKey = "storage-ring" -const ringName = "unified_storage" +const ringKey = "unified-storage-ring" +const ringName = "unified_storage_ring" const numTokens = 128 const heartbeatTimeout = time.Minute diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index bafdcc1b2dc..7f76c2b8612 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -541,21 +541,23 @@ type Cfg struct { ShortLinkExpiration int // Unified Storage - UnifiedStorage map[string]UnifiedStorageConfig - IndexPath string - IndexWorkers int - IndexMaxBatchSize int - IndexFileThreshold int - IndexMinCount int - EnableSharding bool - MemberlistBindAddr string - MemberlistAdvertiseAddr string - MemberlistJoinMember string - InstanceID string - SprinklesApiServer string - SprinklesApiServerPageLimit int - CACertPath string - HttpsSkipVerify bool + UnifiedStorage map[string]UnifiedStorageConfig + IndexPath string + IndexWorkers int + IndexMaxBatchSize int + IndexFileThreshold int + IndexMinCount int + EnableSharding bool + MemberlistBindAddr string + MemberlistAdvertiseAddr string + MemberlistJoinMember string + MemberlistClusterLabel string + MemberlistClusterLabelVerificationDisabled bool + InstanceID string + SprinklesApiServer string + SprinklesApiServerPageLimit int + CACertPath string + HttpsSkipVerify bool } type UnifiedStorageConfig struct { diff --git a/pkg/setting/setting_unified_storage.go b/pkg/setting/setting_unified_storage.go index 45ddfb4b3f9..8da4e942e69 100644 --- a/pkg/setting/setting_unified_storage.go +++ b/pkg/setting/setting_unified_storage.go @@ -58,6 +58,8 @@ func (cfg *Cfg) setUnifiedStorageConfig() { cfg.MemberlistBindAddr = section.Key("memberlist_bind_addr").String() cfg.MemberlistAdvertiseAddr = section.Key("memberlist_advertise_addr").String() cfg.MemberlistJoinMember = section.Key("memberlist_join_member").String() + cfg.MemberlistClusterLabel = section.Key("memberlist_cluster_label").String() + cfg.MemberlistClusterLabelVerificationDisabled = section.Key("memberlist_cluster_label_verification_disabled").MustBool(false) cfg.InstanceID = section.Key("instance_id").String() cfg.IndexFileThreshold = section.Key("index_file_threshold").MustInt(10) cfg.IndexMinCount = section.Key("index_min_count").MustInt(1)