Skip to main content

Event Domain

Optional Feature

The Event domain is an optional feature that must be explicitly enabled by a platform administrator through an EventConfig resource.

The Event domain handles event publishing and subscribing within the Control Plane. It serves as the business-logic layer between the Rover domain (user configuration) and the PubSub domain (runtime configuration). Its core responsibilities include managing event types, handling approval for event subscriptions, and orchestrating cross-zone event meshing.

Custom Resources

EventConfig

EventConfig is the Schema for the eventconfigs API. It provides configuration for the event operator, including the configuration backend connection and OAuth2 authentication settings.

Group: event.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

EventConfigSpec

Appears in: EventConfig

EventConfigSpec defines the desired state of EventConfig.

FieldTypeDefaultValidation
adminAdminRequired
meshMeshRequired
publishEventUrlstringRequired, Format: uri
serverSendEventUrlstringRequired, Format: uri
voyagerApiUrlstringOptional, Format: uri
zoneRealmRequired

Admin

Appears in: EventConfigSpec

Admin configures the connection to the configuration backend.

FieldTypeDefaultValidation
clientClientRequired
urlstringRequired, Format: uri, minLength: 1

Client

Appears in: Admin, Mesh

Client configures the identity client used for admin access to the configuration backend.

FieldTypeDefaultValidation
clientIdstringOptional
clientSecretstringOptional
realmRealmOptional

Realm

Appears in: Client, EventConfigSpec, EventConfigStatus, EventExposureSpec, EventExposureStatus, EventSubscriptionSpec, EventSubscriptionStatus

Realm references the identity Realm CR used for OAuth2 authentication If empty, it is assumed that the default realm should be used.

FieldTypeDefaultValidation
namestringRequired
namespacestringRequired
uidstringOptional

Mesh

Appears in: EventConfigSpec

Mesh configures the mesh topology for event distribution.

FieldTypeDefaultValidation
clientClientRequired
fullMeshbooleantrueRequired
zoneNamesstring[]Optional

EventConfigStatus

Appears in: EventConfig

EventConfigStatus defines the observed state of EventConfig.

FieldTypeDefaultValidation
adminClientAdminClientOptional
callbackRouteRealmOptional
callbackUrlstringOptional
conditionsCondition[]Optional
eventStoreRealmOptional
meshClientAdminClientOptional
proxyCallbackRoutesRealm[]Optional
proxyCallbackUrlsmap<string, string>Optional
proxyVoyagerRoutesRealm[]Optional
proxyVoyagerUrlsmap<string, string>Optional
publishRouteRealmOptional
publishUrlstringOptional
voyagerRouteRealmOptional
voyagerUrlstringOptional

AdminClient

Appears in: EventConfigStatus

AdminClient references the identity Client CR created for admin access to the configuration backend.

FieldTypeDefaultValidation
namestringRequired
namespacestringRequired
observedGenerationintegerRequired, Format: int64
uidstringOptional

Condition

Appears in: EventConfigStatus, EventExposureStatus, EventSubscriptionStatus, EventTypeStatus

FieldTypeDefaultValidation
lastTransitionTimestringRequired, Format: date-time
messagestringRequired, maxLength: 32768
observedGenerationintegerOptional, Format: int64, minimum: 0
reasonstringRequired, minLength: 1, maxLength: 1024, pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
statusstringRequired, Enum: True \| False \| Unknown
typestringRequired, maxLength: 316, pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

EventExposure

EventExposure is the Schema for the eventexposures API. It represents a declaration that an application publishes events of a specific type, making them available for subscription by other applications.

Group: event.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

EventExposureSpec

Appears in: EventExposure

EventExposureSpec defines the desired state of EventExposure.

FieldTypeDefaultValidation
additionalPublisherIdsstring[]Optional
approvalApprovalRequired
eventTypestringRequired, minLength: 1
providerProviderRequired
scopesScopes[]Optional
visibilitystringEnterpriseRequired, Enum: World \| Zone \| Enterprise
zoneRealmRequired

Approval

Appears in: EventExposureSpec

Approval configures how subscriptions to this event are approved.

FieldTypeDefaultValidation
strategystringAutoRequired, Enum: Auto \| Simple \| FourEyes
trustedTeamsstring[]Optional, minItems: 0, maxItems: 10

Provider

Appears in: EventExposureSpec, EventSubscriptionSpec

Provider identifies the providing application.

FieldTypeDefaultValidation
apiVersionstringOptional
kindstringOptional
namestringRequired
namespacestringRequired
uidstringOptional

Scopes

Appears in: EventExposureSpec

Scopes defines named scopes with optional publisher-side trigger filtering.

FieldTypeDefaultValidation
namestringRequired, minLength: 1
triggerTriggerRequired

Trigger

Appears in: Scopes, EventSubscriptionSpec

Trigger defines publisher-side filtering criteria for this scope. Every scope must define a trigger.

FieldTypeDefaultValidation
responseFilterResponseFilterOptional
selectionFilterSelectionFilterOptional

ResponseFilter

Appears in: Trigger

ResponseFilter controls payload shaping (which fields to return).

FieldTypeDefaultValidation
modestringIncludeOptional, Enum: Include \| Exclude
pathsstring[]Optional

SelectionFilter

Appears in: Trigger

SelectionFilter controls event matching (which events to deliver).

FieldTypeDefaultValidation
attributesmap<string, string>Optional
expressionobjectOptional

EventExposureStatus

Appears in: EventExposure

EventExposureStatus defines the observed state of EventExposure.

FieldTypeDefaultValidation
activebooleanRequired
callbackURLstringOptional
conditionsCondition[]Optional
proxyRoutesRealm[]Optional
publisherRealmOptional
routeRealmOptional
sseUrlsmap<string, string>Optional

EventSubscription

EventSubscription is the Schema for the eventsubscriptions API. It represents a declaration that an application subscribes to events of a specific type, configuring delivery, filtering, and scope selection.

Group: event.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

EventSubscriptionSpec

Appears in: EventSubscription

EventSubscriptionSpec defines the desired state of EventSubscription.

FieldTypeDefaultValidation
deliveryDeliveryRequired
eventTypestringRequired, minLength: 1
requestorProviderRequired
scopesstring[]Optional
triggerTriggerOptional
zoneRealmRequired

Delivery

Appears in: EventSubscriptionSpec

Delivery configures how events are delivered to the subscriber.

FieldTypeDefaultValidation
callbackstringOptional, Format: uri
circuitBreakerOptOutbooleanOptional
enforceGetHttpRequestMethodForHealthCheckbooleanOptional
eventRetentionTimestringOptional
payloadstringDataRequired, Enum: Data \| DataRef
redeliveriesPerSecondintegerOptional
retryableStatusCodesinteger[]Optional
typestringCallbackRequired, Enum: Callback \| ServerSentEvent

EventSubscriptionStatus

Appears in: EventSubscription

EventSubscriptionStatus defines the observed state of EventSubscription.

FieldTypeDefaultValidation
approvalRealmOptional
approvalRequestRealmOptional
conditionsCondition[]Optional
subscriberRealmOptional
subscriptionIDstringOptional
urlstringOptional, Format: uri

EventType

EventType is the Schema for the eventtypes API. It represents a singleton registry entry for a known event type, serving as the canonical reference that both EventExposure and EventSubscription point to.

Group: event.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

EventTypeSpec

Appears in: EventType

EventTypeSpec defines the desired state of EventType.

FieldTypeDefaultValidation
descriptionstringOptional
specificationstringOptional
typestringRequired, minLength: 1, maxLength: 253, pattern: ^[a-z0-9]+(\.[a-z0-9]+)*$
versionstringRequired, pattern: ^\d+.*$

EventTypeStatus

Appears in: EventType

EventTypeStatus defines the observed state of EventType.

FieldTypeDefaultValidation
activebooleanRequired
conditionsCondition[]Optional

Cross-Zone Meshing

When event publishers and subscribers are in different zones, the Event domain automatically creates proxy routes to deliver events across zone boundaries. This enables:

  • Events published in one cloud environment to be consumed in another
  • SSE streams to be proxied across zones
  • Callback deliveries to reach subscribers in remote zones

The mesh topology is configured through the EventConfig resource. With fullMesh: true, every zone can communicate with every other zone. Alternatively, you can list specific zone names for selective meshing.

Domain Interactions

The Event domain has the broadest cross-domain interaction surface in the platform:

  • Rover domain — Rover files create EventExposure and EventSubscription resources.
  • PubSub domain — The Event domain creates EventStore, Publisher, and Subscriber resources.
  • Gateway domain — Creates routes for publishing, SSE delivery, and cross-zone proxy communication.
  • Identity domain — Creates clients for OAuth2 token exchange between zones.
  • Application domain — Reads Application resources for publisher and subscriber metadata.
  • Approval domain — Creates Approval and ApprovalRequest resources for event subscriptions.
  • Admin domain — Watches Zone resources for configuration changes.