diff --git a/pkg/loki/config_wrapper.go b/pkg/loki/config_wrapper.go index 5522fe686de3..c64d78cb1a50 100644 --- a/pkg/loki/config_wrapper.go +++ b/pkg/loki/config_wrapper.go @@ -169,6 +169,7 @@ func applyPathPrefixDefaults(r *ConfigWrapper, defaults ConfigWrapper) { func appendLoopbackInterface(r *ConfigWrapper) { if loopbackIface, err := loki_net.LoopbackInterfaceName(); err == nil { r.Ingester.LifecyclerConfig.InfNames = append(r.Ingester.LifecyclerConfig.InfNames, loopbackIface) + r.Config.Frontend.FrontendV2.InfNames = append(r.Config.Frontend.FrontendV2.InfNames, loopbackIface) } } diff --git a/pkg/loki/config_wrapper_test.go b/pkg/loki/config_wrapper_test.go index 46e480fa5a2c..2dad9c47d5c4 100644 --- a/pkg/loki/config_wrapper_test.go +++ b/pkg/loki/config_wrapper_test.go @@ -993,3 +993,25 @@ query_scheduler: assert.Equal(t, config.Ingester.LifecyclerConfig.InfNames, []string{"eth0", "en0", defaultIface}) }) } + +func TestLoopbackAppendingToFrontendV2(t *testing.T) { + defaultIface, err := loki_net.LoopbackInterfaceName() + assert.NoError(t, err) + assert.NotEmpty(t, defaultIface) + + t.Run("by default, loopback should be in FrontendV2 interface names", func(t *testing.T) { + config, _, err := configWrapperFromYAML(t, minimalConfig, []string{}) + assert.NoError(t, err) + assert.Equal(t, []string{"eth0", "en0", defaultIface}, config.Frontend.FrontendV2.InfNames) + }) + + t.Run("loopback shouldn't be in FrontendV2 interface names if set by user", func(t *testing.T) { + yamlContent := `frontend: + instance_interface_names: + - otheriface` + + config, _, err := configWrapperFromYAML(t, yamlContent, []string{}) + assert.NoError(t, err) + assert.Equal(t, []string{"otheriface"}, config.Frontend.FrontendV2.InfNames) + }) +}