fix(controller): panic in events.Controller.Add() (#5766)

This commit is contained in:
vflaux 2025-08-27 08:48:09 +02:00 committed by GitHub
parent 81290c03e6
commit a8ab91de38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 8 deletions

View File

@ -175,7 +175,7 @@ type Controller struct {
runAtMutex sync.Mutex
// The lastRunAt used for throttling and batching reconciliation
lastRunAt time.Time
EventController events.EventEmitter
EventEmitter events.EventEmitter
// MangedRecordTypes are DNS record types that will be considered for management.
ManagedRecordTypes []string
// 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()
return err
} else {
emitChangeEvent(c.EventController, *plan.Changes, events.RecordReady)
emitChangeEvent(c.EventEmitter, *plan.Changes, events.RecordReady)
}
} else {
controllerNoChangesTotal.Counter.Inc()

View File

@ -228,7 +228,7 @@ func TestRunOnce(t *testing.T) {
Registry: r,
Policy: &plan.SyncPolicy{},
ManagedRecordTypes: cfg.ManagedDNSRecordTypes,
EventController: emitter,
EventEmitter: emitter,
}
assert.NoError(t, ctrl.RunOnce(context.Background()))

View File

@ -363,13 +363,14 @@ func buildController(
events.WithKubeConfig(cfg.KubeConfig, cfg.APIServerURL, cfg.RequestTimeout),
events.WithEmitEvents(cfg.EmitEvents),
events.WithDryRun(cfg.DryRun))
var eventsCtrl *events.Controller
var eventEmitter events.EventEmitter
if eventsCfg.IsEnabled() {
eventsCtrl, err = events.NewEventController(eventsCfg)
eventCtrl, err := events.NewEventController(eventsCfg)
if err != nil {
log.Fatal(err)
}
eventsCtrl.Run(ctx)
eventCtrl.Run(ctx)
eventEmitter = eventCtrl
}
return &Controller{
@ -381,7 +382,7 @@ func buildController(
ManagedRecordTypes: cfg.ManagedDNSRecordTypes,
ExcludeRecordTypes: cfg.ExcludeDNSRecordTypes,
MinEventSyncInterval: cfg.MinEventSyncInterval,
EventController: eventsCtrl,
EventEmitter: eventEmitter,
}, nil
}