mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-12-16 17:21:16 +01:00
fix(controller): panic in events.Controller.Add() (#5766)
This commit is contained in:
parent
81290c03e6
commit
a8ab91de38
@ -175,7 +175,7 @@ type Controller struct {
|
|||||||
runAtMutex sync.Mutex
|
runAtMutex sync.Mutex
|
||||||
// The lastRunAt used for throttling and batching reconciliation
|
// The lastRunAt used for throttling and batching reconciliation
|
||||||
lastRunAt time.Time
|
lastRunAt time.Time
|
||||||
EventController events.EventEmitter
|
EventEmitter events.EventEmitter
|
||||||
// MangedRecordTypes are DNS record types that will be considered for management.
|
// MangedRecordTypes are DNS record types that will be considered for management.
|
||||||
ManagedRecordTypes []string
|
ManagedRecordTypes []string
|
||||||
// ExcludeRecordTypes are DNS record types that will be excluded from management.
|
// ExcludeRecordTypes are DNS record types that will be excluded from management.
|
||||||
@ -247,7 +247,7 @@ func (c *Controller) RunOnce(ctx context.Context) error {
|
|||||||
deprecatedRegistryErrors.Counter.Inc()
|
deprecatedRegistryErrors.Counter.Inc()
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
emitChangeEvent(c.EventController, *plan.Changes, events.RecordReady)
|
emitChangeEvent(c.EventEmitter, *plan.Changes, events.RecordReady)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
controllerNoChangesTotal.Counter.Inc()
|
controllerNoChangesTotal.Counter.Inc()
|
||||||
|
|||||||
@ -228,7 +228,7 @@ func TestRunOnce(t *testing.T) {
|
|||||||
Registry: r,
|
Registry: r,
|
||||||
Policy: &plan.SyncPolicy{},
|
Policy: &plan.SyncPolicy{},
|
||||||
ManagedRecordTypes: cfg.ManagedDNSRecordTypes,
|
ManagedRecordTypes: cfg.ManagedDNSRecordTypes,
|
||||||
EventController: emitter,
|
EventEmitter: emitter,
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.NoError(t, ctrl.RunOnce(context.Background()))
|
assert.NoError(t, ctrl.RunOnce(context.Background()))
|
||||||
|
|||||||
@ -363,13 +363,14 @@ func buildController(
|
|||||||
events.WithKubeConfig(cfg.KubeConfig, cfg.APIServerURL, cfg.RequestTimeout),
|
events.WithKubeConfig(cfg.KubeConfig, cfg.APIServerURL, cfg.RequestTimeout),
|
||||||
events.WithEmitEvents(cfg.EmitEvents),
|
events.WithEmitEvents(cfg.EmitEvents),
|
||||||
events.WithDryRun(cfg.DryRun))
|
events.WithDryRun(cfg.DryRun))
|
||||||
var eventsCtrl *events.Controller
|
var eventEmitter events.EventEmitter
|
||||||
if eventsCfg.IsEnabled() {
|
if eventsCfg.IsEnabled() {
|
||||||
eventsCtrl, err = events.NewEventController(eventsCfg)
|
eventCtrl, err := events.NewEventController(eventsCfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
eventsCtrl.Run(ctx)
|
eventCtrl.Run(ctx)
|
||||||
|
eventEmitter = eventCtrl
|
||||||
}
|
}
|
||||||
|
|
||||||
return &Controller{
|
return &Controller{
|
||||||
@ -381,7 +382,7 @@ func buildController(
|
|||||||
ManagedRecordTypes: cfg.ManagedDNSRecordTypes,
|
ManagedRecordTypes: cfg.ManagedDNSRecordTypes,
|
||||||
ExcludeRecordTypes: cfg.ExcludeDNSRecordTypes,
|
ExcludeRecordTypes: cfg.ExcludeDNSRecordTypes,
|
||||||
MinEventSyncInterval: cfg.MinEventSyncInterval,
|
MinEventSyncInterval: cfg.MinEventSyncInterval,
|
||||||
EventController: eventsCtrl,
|
EventEmitter: eventEmitter,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user