Skip to content

Feat: Pluggable Event Watcher System #11

@antweiss

Description

@antweiss

Pluggable Event Watcher System

The Pluggable Event Watcher System extends the KHook Controller to support multiple event sources beyond Kubernetes events. The idea is to use Go's plugin system to enable dynamic loading of event source implementations at startup, allowing for extensibility and customization without modifying the core controller code.

Architecture Overview

graph TB
    A[Plugin Manager] --> B[Event Source Registry]
    A --> C[Event Mapping Loader]
    B --> D[Kubernetes Event Source]
    B --> E[Custom Event Source Plugin]
    B --> F[External API Event Source]
    C --> G[Event Mappings Config]
    D --> H[Event Router]
    E --> H
    F --> H
    H --> I[Event Processing Pipeline]
Loading

Core Components

  1. Plugin Manager: Loads and manages event source plugins at startup
  2. Event Source Registry: Maintains registry of available event sources
  3. Event Mapping Loader: Loads event type mappings from configuration files
  4. Event Router: Routes events from multiple sources to processing pipeline
  5. Event Source Plugins: Individual implementations for different event sources

The existing Kubernetes event watcher will be rewritten as a plugin and enabled by default. Additional event source plugins will be optional.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions