Skip to content

fix(memberlist): allow resolution of advertise address from v6 interf… - #18250

Merged
ashwanthgoli merged 2 commits into
mainfrom
fix-memberlist-v6
Jun 27, 2025
Merged

fix(memberlist): allow resolution of advertise address from v6 interf…#18250
ashwanthgoli merged 2 commits into
mainfrom
fix-memberlist-v6

Conversation

@ashwanthgoli

@ashwanthgoli ashwanthgoli commented Jun 27, 2025

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

#13940 introduced a change for memberlist to pick address from the interfaces defined in common instance_interface_names (previously it iterated over all available interfaces), but the method used only resolves v4 addresses.

This breaks memberlist for anyone using v6 only interfaces. This PR updates memberlist to look-up t.Cfg.Common.Ring.EnableIPv6 flag to enable the resolution of v6 addresses.

Note: Individual components are allowed to specify their own list of interfaces using <component_name>.ring.instance-interface-names but memberlist does not consider the component specific setting yet. This should be fixed in the long term.

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:

Checklist

  • Reviewed the CONTRIBUTING.md guide (required)
  • Documentation added
  • Tests updated
  • Title matches the required conventional commits format, see here
    • Note that Promtail is considered to be feature complete, and future development for logs collection will be in Grafana Alloy. As such, feat PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.
  • Changes that require user attention or interaction to upgrade are documented in docs/sources/setup/upgrade/_index.md
  • If the change is deprecating or removing a configuration option, update the deprecated-config.yaml and deleted-config.yaml files respectively in the tools/deprecated-config-checker directory. Example PR
@ashwanthgoli
ashwanthgoli requested a review from a team as a code owner June 27, 2025 10:05
Comment thread pkg/loki/modules.go
t.Cfg.MemberlistKV.AdvertiseAddr, err = ring.GetInstanceAddr(
t.Cfg.MemberlistKV.AdvertiseAddr,
t.Cfg.Common.InstanceInterfaceNames,
t.Cfg.Common.Ring.InstanceInterfaceNames,

@ashwanthgoli ashwanthgoli Jun 27, 2025

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this line of change is a no-op as Common.Ring.InstanceInterfaceNames is set from Common.InstanceInterfaceNames unless the user has explicitly configured different values for them - not sure if doing that makes sense.

I updated this as memberlist is the underlying transport for the ring, it makes sense for it to inherit ring settings rather than loki level settings.

@slim-bean slim-bean left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, tricky to do this in a way that doesn't lead to an unexpected result for one version of a config vs another, I like this approach.

@ashwanthgoli
ashwanthgoli merged commit 8594d1c into main Jun 27, 2025
65 checks passed
@ashwanthgoli
ashwanthgoli deleted the fix-memberlist-v6 branch June 27, 2025 13:03
loki-gh-app Bot pushed a commit that referenced this pull request Jun 27, 2025
loki-gh-app Bot pushed a commit that referenced this pull request Jun 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

3 participants