@@ -262,6 +262,38 @@ func applyConfigToRings(r, defaults *ConfigWrapper, rc lokiring.RingConfig, merg
262
262
r .Pattern .LifecyclerConfig .ObservePeriod = rc .ObservePeriod
263
263
}
264
264
265
+ // IngestLimits
266
+ if mergeWithExisting || reflect .DeepEqual (r .IngestLimits .LifecyclerConfig .RingConfig , defaults .IngestLimits .LifecyclerConfig .RingConfig ) {
267
+ r .IngestLimits .LifecyclerConfig .RingConfig .KVStore = rc .KVStore
268
+ r .IngestLimits .LifecyclerConfig .HeartbeatPeriod = rc .HeartbeatPeriod
269
+ r .IngestLimits .LifecyclerConfig .RingConfig .HeartbeatTimeout = rc .HeartbeatTimeout
270
+ r .IngestLimits .LifecyclerConfig .TokensFilePath = rc .TokensFilePath
271
+ r .IngestLimits .LifecyclerConfig .RingConfig .ZoneAwarenessEnabled = rc .ZoneAwarenessEnabled
272
+ r .IngestLimits .LifecyclerConfig .ID = rc .InstanceID
273
+ r .IngestLimits .LifecyclerConfig .InfNames = rc .InstanceInterfaceNames
274
+ r .IngestLimits .LifecyclerConfig .Port = rc .InstancePort
275
+ r .IngestLimits .LifecyclerConfig .Addr = rc .InstanceAddr
276
+ r .IngestLimits .LifecyclerConfig .Zone = rc .InstanceZone
277
+ r .IngestLimits .LifecyclerConfig .ListenPort = rc .ListenPort
278
+ r .IngestLimits .LifecyclerConfig .ObservePeriod = rc .ObservePeriod
279
+ }
280
+
281
+ // IngestLimitsFrontend
282
+ if mergeWithExisting || reflect .DeepEqual (r .IngestLimitsFrontend .LifecyclerConfig .RingConfig , defaults .IngestLimitsFrontend .LifecyclerConfig .RingConfig ) {
283
+ r .IngestLimitsFrontend .LifecyclerConfig .RingConfig .KVStore = rc .KVStore
284
+ r .IngestLimitsFrontend .LifecyclerConfig .HeartbeatPeriod = rc .HeartbeatPeriod
285
+ r .IngestLimitsFrontend .LifecyclerConfig .RingConfig .HeartbeatTimeout = rc .HeartbeatTimeout
286
+ r .IngestLimitsFrontend .LifecyclerConfig .TokensFilePath = rc .TokensFilePath
287
+ r .IngestLimitsFrontend .LifecyclerConfig .RingConfig .ZoneAwarenessEnabled = rc .ZoneAwarenessEnabled
288
+ r .IngestLimitsFrontend .LifecyclerConfig .ID = rc .InstanceID
289
+ r .IngestLimitsFrontend .LifecyclerConfig .InfNames = rc .InstanceInterfaceNames
290
+ r .IngestLimitsFrontend .LifecyclerConfig .Port = rc .InstancePort
291
+ r .IngestLimitsFrontend .LifecyclerConfig .Addr = rc .InstanceAddr
292
+ r .IngestLimitsFrontend .LifecyclerConfig .Zone = rc .InstanceZone
293
+ r .IngestLimitsFrontend .LifecyclerConfig .ListenPort = rc .ListenPort
294
+ r .IngestLimitsFrontend .LifecyclerConfig .ObservePeriod = rc .ObservePeriod
295
+ }
296
+
265
297
// Distributor
266
298
if mergeWithExisting || reflect .DeepEqual (r .Distributor .DistributorRing , defaults .Distributor .DistributorRing ) {
267
299
r .Distributor .DistributorRing .HeartbeatTimeout = rc .HeartbeatTimeout
@@ -332,6 +364,20 @@ func applyTokensFilePath(cfg *ConfigWrapper) error {
332
364
}
333
365
cfg .Ingester .LifecyclerConfig .TokensFilePath = f
334
366
367
+ // IngestLimits
368
+ f , err = tokensFile (cfg , "ingestlimits.tokens" )
369
+ if err != nil {
370
+ return err
371
+ }
372
+ cfg .IngestLimits .LifecyclerConfig .TokensFilePath = f
373
+
374
+ // IngestLimitsFrontend
375
+ f , err = tokensFile (cfg , "ingestlimitsfrontend.tokens" )
376
+ if err != nil {
377
+ return err
378
+ }
379
+ cfg .IngestLimitsFrontend .LifecyclerConfig .TokensFilePath = f
380
+
335
381
// Compactor
336
382
f , err = tokensFile (cfg , "compactor.tokens" )
337
383
if err != nil {
@@ -414,6 +460,15 @@ func appendLoopbackInterface(cfg, defaults *ConfigWrapper) {
414
460
if reflect .DeepEqual (cfg .Ingester .LifecyclerConfig .InfNames , defaults .Ingester .LifecyclerConfig .InfNames ) {
415
461
cfg .Ingester .LifecyclerConfig .InfNames = append (cfg .Ingester .LifecyclerConfig .InfNames , loopbackIface )
416
462
}
463
+
464
+ if reflect .DeepEqual (cfg .IngestLimits .LifecyclerConfig .InfNames , defaults .IngestLimits .LifecyclerConfig .InfNames ) {
465
+ cfg .IngestLimits .LifecyclerConfig .InfNames = append (cfg .IngestLimits .LifecyclerConfig .InfNames , loopbackIface )
466
+ }
467
+
468
+ if reflect .DeepEqual (cfg .IngestLimitsFrontend .LifecyclerConfig .InfNames , defaults .IngestLimitsFrontend .LifecyclerConfig .InfNames ) {
469
+ cfg .IngestLimitsFrontend .LifecyclerConfig .InfNames = append (cfg .IngestLimitsFrontend .LifecyclerConfig .InfNames , loopbackIface )
470
+ }
471
+
417
472
if reflect .DeepEqual (cfg .Pattern .LifecyclerConfig .InfNames , defaults .Pattern .LifecyclerConfig .InfNames ) {
418
473
cfg .Pattern .LifecyclerConfig .InfNames = append (cfg .Pattern .LifecyclerConfig .InfNames , loopbackIface )
419
474
}
@@ -453,6 +508,8 @@ func appendLoopbackInterface(cfg, defaults *ConfigWrapper) {
453
508
// (for example, use consul for the distributor), it seems harmless to take a guess at better defaults here.
454
509
func applyMemberlistConfig (r * ConfigWrapper ) {
455
510
r .Ingester .LifecyclerConfig .RingConfig .KVStore .Store = memberlistStr
511
+ r .IngestLimits .LifecyclerConfig .RingConfig .KVStore .Store = memberlistStr
512
+ r .IngestLimitsFrontend .LifecyclerConfig .RingConfig .KVStore .Store = memberlistStr
456
513
r .Pattern .LifecyclerConfig .RingConfig .KVStore .Store = memberlistStr
457
514
r .Distributor .DistributorRing .KVStore .Store = memberlistStr
458
515
r .Ruler .Ring .KVStore .Store = memberlistStr
0 commit comments