Repository: kubernetes-sigs/external-dns

Issue:
Typo in docs related to k8s version compatibility
**What happened**:
I think the docs are wrong for [kubernetes-version-compatibility](https://github.com/kubernetes-sigs/external-dns?tab=readme-ov-file#kubernetes-version-compatibility)

**What you expected to happen**:
I think the middle column should be `>= 0.10.x and <= 0.17.x` not  `<= 0.10.x and >= 0.17.x`.  It should be versions from 0.10 to 0.17, not versions less than 0.10 and greater than 0.17.

<img width="632" height="246" alt="Image" src="https://github.com/user-attachments/assets/c183fce1-22d2-479b-b85a-99d023958386" />

**How to reproduce it (as minimally and precisely as possible)**:

**Anything else we need to know?**:

**Environment**:

- Docs

Discussion:

Solution patch:
diff --git a/README.md b/README.md
index a4b41686..1dbdd791 100644
--- a/README.md
+++ b/README.md
@@ -167,7 +167,7 @@ Breaking changes were introduced in external-dns in the following versions:
 - [`v0.10.0`](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.10.0): use of `networking.k8s.io/ingresses` instead of `extensions/ingresses` (see [#2281](https://github.com/kubernetes-sigs/external-dns/pull/2281))
 - [`v0.18.0`](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.18.0): use of `discovery.k8s.io/endpointslices` instead of `endpoints` (see [#5493](https://github.com/kubernetes-sigs/external-dns/pull/5493))
 
-| ExternalDNS                  |      ≤ 0.9.x       | ≤ 0.10.x and ≥ 0.17.x |      ≥ 0.18.x      |
+| ExternalDNS                  |      ≤ 0.9.x       | ≥ 0.10.x and ≤ 0.17.x |      ≥ 0.18.x      |
 | ---------------------------- | :----------------: | :-------------------: | :----------------: |
 | Kubernetes ≤ 1.18            | :white_check_mark: |          :x:          |        :x:         |
 | Kubernetes 1.19 and 1.20     | :white_check_mark: |  :white_check_mark:   |        :x:         |
diff --git a/controller/controller.go b/controller/controller.go
index 788c47e6..bdbddfb6 100644
--- a/controller/controller.go
+++ b/controller/controller.go
@@ -174,8 +174,8 @@ type Controller struct {
 	// The runAtMutex is for atomic updating of nextRunAt and lastRunAt
 	runAtMutex sync.Mutex
 	// The lastRunAt used for throttling and batching reconciliation
-	lastRunAt       time.Time
-	EventController events.EventEmitter
+	lastRunAt    time.Time
+	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()
diff --git a/controller/execute.go b/controller/execute.go
index 4f1f44c3..47940c87 100644
--- a/controller/execute.go
+++ b/controller/execute.go
@@ -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
 }
 



Test patch:
diff --git a/controller/controller_test.go b/controller/controller_test.go
index 054c8481..5abd5677 100644
--- a/controller/controller_test.go
+++ b/controller/controller_test.go
@@ -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()))