Skip to content

Commit

Permalink
fix(memberlist): Respect interface names config for advertise address
Browse files Browse the repository at this point in the history
If interface names are specified in common config, use this to
fulfill the instance_addr with it.

Signed-off-by: Seena Fallah <[email protected]>
  • Loading branch information
clwluvw committed Aug 28, 2024
1 parent 7c1a849 commit d0839e0
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions pkg/loki/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/grafana/dskit/kv/codec"
"github.com/grafana/dskit/kv/memberlist"
"github.com/grafana/dskit/middleware"
"github.com/grafana/dskit/netutil"
"github.com/grafana/dskit/ring"
"github.com/grafana/dskit/runtimeconfig"
"github.com/grafana/dskit/server"
Expand Down Expand Up @@ -1449,6 +1450,15 @@ func (t *Loki) initMemberlistKV() (services.Service, error) {
)
dnsProvider := dns.NewProvider(util_log.Logger, dnsProviderReg, dns.GolangResolverType)

var err error
t.Cfg.MemberlistKV.AdvertiseAddr, err = GetInstanceAddr(
t.Cfg.MemberlistKV.AdvertiseAddr,
t.Cfg.Common.InstanceInterfaceNames,
util_log.Logger,
)
if err != nil {
return nil, err
}
t.MemberlistKV = memberlist.NewKVInitService(&t.Cfg.MemberlistKV, util_log.Logger, dnsProvider, reg)

t.Cfg.CompactorConfig.CompactorRing.KVStore.MemberlistKV = t.MemberlistKV.GetMemberlistKV
Expand Down Expand Up @@ -2042,3 +2052,11 @@ func schemaHasBoltDBShipperConfig(scfg config.SchemaConfig) bool {

return false
}

func GetInstanceAddr(addr string, netInterfaces []string, logger log.Logger) (string, error) {
if addr != "" {
return addr, nil
}

return netutil.GetFirstAddressOf(netInterfaces, logger, false)
}

0 comments on commit d0839e0

Please sign in to comment.