Skip to main content

Rover Domain

The Rover domain is the primary user-facing entry point for the Control Plane. Users define their API exposures, subscriptions, and event configurations in a declarative Rover file, and the operator translates them into resources across multiple other domains.

Custom Resources

AgentSpecification

AgentSpecification is the Schema for the agentspecifications API

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

AgentSpecificationSpec

Appears in: AgentSpecification, McpSpecification

FieldTypeDefaultValidation
basepathstringRequired, maxLength: 200, pattern: ^/.*$
categorystringotherRequired
descriptionstringOptional
hashstringRequired
namestringRequired
scopesstring[]Optional
specificationstringRequired
versionstringRequired, pattern: ^\d+.*$

AgentSpecificationStatus

Appears in: AgentSpecification

FieldTypeDefaultValidation
agentCardAgentCardOptional
conditionsCondition[]Optional

AgentCard

Appears in: AgentSpecificationStatus, ApiSpecificationStatus, EventSpecificationStatus, McpSpecificationStatus, RoverStatus

AgentCard reference

FieldTypeDefaultValidation
namestringRequired
namespacestringRequired
uidstringOptional

Condition

Appears in: AgentSpecificationStatus, ApiChangelogStatus, ApiSpecificationStatus, EventSpecificationStatus, McpSpecificationStatus, RoverStatus

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])$

ApiChangelog

ApiChangelog is the Schema for the apichangelogs API The ApiChangelog name is the normalized basePath with major version removed Example: basePath "/eni/my-api/v1" → changelog name "eni-my-api"

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

ApiChangelogSpec

Appears in: ApiChangelog, Roadmap

ApiChangelogSpec defines the desired state of ApiChangelog

FieldTypeDefaultValidation
contentsstringRequired
hashstringRequired
specificationRefSpecificationRefRequired

SpecificationRef

Appears in: ApiChangelogSpec

SpecificationRef is a reference to the ApiSpecification this changelog describes The referenced specification may or may not exist yet

FieldTypeDefaultValidation
apiVersionstringOptional
kindstringOptional
namestringRequired
namespacestringRequired
uidstringOptional

ApiChangelogStatus

Appears in: ApiChangelog, Roadmap

ApiChangelogStatus defines the observed state of ApiChangelog

FieldTypeDefaultValidation
conditionsCondition[]Optional

ApiSpecification

ApiSpecification is the Schema for the apispecifications API

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

ApiSpecificationSpec

Appears in: ApiSpecification

FieldTypeDefaultValidation
basepathstringRequired, maxLength: 200, pattern: ^/.*$
categorystringotherRequired
hashstringRequired
lintLintOptional
scopesstring[]Optional
specificationstringRequired
versionstringRequired, pattern: ^\d+.*$
xvendorbooleanfalseOptional

Lint

Appears in: ApiSpecificationSpec

Lint contains the result of the OAS linting performed by rover-server.

FieldTypeDefaultValidation
dashboardUrlstringOptional
messagestringOptional
passedbooleanRequired

ApiSpecificationStatus

Appears in: ApiSpecification

FieldTypeDefaultValidation
apiAgentCardOptional
conditionsCondition[]Optional

EventSpecification

EventSpecification is the Schema for the eventspecifications API. It defines an event type's metadata and creates the corresponding EventType singleton in the event domain, analogous to how ApiSpecification creates Api resources.

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

EventSpecificationSpec

Appears in: EventSpecification

EventSpecificationSpec defines the desired state of EventSpecification.

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

EventSpecificationStatus

Appears in: EventSpecification

EventSpecificationStatus defines the observed state of EventSpecification.

FieldTypeDefaultValidation
conditionsCondition[]Optional
eventTypeAgentCardOptional

McpSpecification

McpSpecification is the Schema for the mcpspecifications API

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

McpSpecificationStatus

Appears in: McpSpecification

FieldTypeDefaultValidation
conditionsCondition[]Optional
mcpServerAgentCardOptional

Roadmap

Roadmap is the Schema for the roadmaps API The Roadmap name is the normalized basePath with major version removed Example: basePath "/eni/my-api/v1" → roadmap name "eni-my-api"

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

Rover

Rover is the Schema for the rovers API Rover resources define API exposures and subscriptions for applications

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

RoverSpec

Appears in: Rover

Spec defines the desired state of the Rover resource

FieldTypeDefaultValidation
authenticationAuthenticationOptional
clientSecretstringOptional
exposuresExposures[]Optional, maxItems: 150
externalIdsExternalId[]Optional, maxItems: 16
ipRestrictionsIpRestrictionsOptional
permissionsPermissions[]Optional, maxItems: 150
subscriptionsSubscriptions[]Optional, maxItems: 150
zonestringRequired, minLength: 1

Authentication

Appears in: RoverSpec

Authentication defines the authentication configuration for this application

FieldTypeDefaultValidation
m2mM2MOptional

M2M

Appears in: Authentication

M2M defines machine-to-machine authentication settings for the application

FieldTypeDefaultValidation
tokenRequeststringclient_secret_basicOptional, Enum: client_secret_basic \| client_secret_post

Exposures

Appears in: RoverSpec

Exposures is a list of APIs and Events that this Rover exposes to consumers

FieldTypeDefaultValidation
agenticAgenticOptional
apiApiOptional
eventEventOptional

Agentic

Appears in: Exposures

Agentic defines an Agentic(MCP or agent) server exposure configuration

FieldTypeDefaultValidation
approvalApprovalRequired
basePathstringRequired, pattern: ^/[a-z0-9-/]+$
securitySecurityOptional
trafficTrafficOptional
transformationTransformationOptional
upstreamsUpstreams[]Required, minItems: 1, maxItems: 12
variantstringMCPRequired, Enum: MCP \| TELECONTEXTMCP \| AGENT
visibilitystringEnterpriseRequired, Enum: World \| Zone \| Enterprise

Approval

Appears in: Agentic, Api, Event

Approval defines the approval workflow for subscriptions to this MCP server

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

TrustedTeam

Appears in: Approval

TrustedTeams identifies teams that are trusted for approving this API Per default your own team is trusted

FieldTypeDefaultValidation
groupstringRequired, minLength: 1
teamstringRequired, minLength: 1

Security

Appears in: Agentic, Api

Security defines optional security configuration

FieldTypeDefaultValidation
m2mRoverM2MOptional

RoverM2M

Appears in: Security

M2M defines machine-to-machine authentication configuration

FieldTypeDefaultValidation
basicBasicOptional
claimsClaimsOptional
externalIDPExternalIDPOptional
scopesstring[]Optional, maxItems: 10

Basic

Appears in: RoverM2M, ExternalIDP, RoverM2M2

Basic defines basic authentication configuration

FieldTypeDefaultValidation
passwordstringRequired, minLength: 1, maxLength: 256
usernamestringRequired, minLength: 1, maxLength: 256

Claims

Appears in: RoverM2M

Claims defines token claims that must be present in the token reaching the upstream. Only valid on the platform-managed LMS token.

FieldTypeDefaultValidation
audAudOptional

Aud

Appears in: Claims

Aud defines the audience claim

FieldTypeDefaultValidation
valuestringOptional, minLength: 1, maxLength: 256
valueFromstringOptional, Enum: ProviderClientId \| ConsumerClientId \| BasePath

ExternalIDP

Appears in: RoverM2M

ExternalIDP defines external identity provider configuration

FieldTypeDefaultValidation
basicBasicOptional
clientClientOptional
grantTypestringRequired, Enum: client_credentials \| authorization_code \| password \| refresh_token
tokenEndpointstringRequired, Format: uri, maxLength: 2048
tokenRequeststringRequired, Enum: client_secret_basic \| client_secret_post

Client

Appears in: ExternalIDP, RoverM2M2

Client defines client credentials for the OAuth2 token request

FieldTypeDefaultValidation
clientIdstringOptional, maxLength: 256
clientKeystringOptional, maxLength: 8192
clientSecretstringOptional, maxLength: 512
refreshTokenstringOptional

Traffic

Appears in: Agentic, Api

Traffic defines optional traffic management configuration

FieldTypeDefaultValidation
circuitBreakerCircuitBreakerOptional
failoverFailoverOptional
loadBalancingLoadBalancingOptional
rateLimitRateLimitOptional

CircuitBreaker

Appears in: Traffic, RoverTraffic

CircuitBreaker defines the Kong circuit breaker configuration

FieldTypeDefaultValidation
enabledbooleanfalseOptional

Failover

Appears in: Traffic

Failover defines disaster recovery configuration for this API

FieldTypeDefaultValidation
zonesstring[]Optional, maxItems: 10

LoadBalancing

Appears in: Traffic

LoadBalancing defines how traffic is distributed among multiple upstream servers

FieldTypeDefaultValidation
strategystringRoundRobinOptional, Enum: RoundRobin \| LeastConnections

RateLimit

Appears in: Traffic

RateLimit defines request rate limiting for this API

FieldTypeDefaultValidation
consumersConsumersOptional
providerProviderOptional

Consumers

Appears in: RateLimit

Consumers defines rate limits applied to API consumers (clients)

FieldTypeDefaultValidation
defaultDefaultOptional
overridesOverrides[]Optional, maxItems: 10

Default

Appears in: Consumers

Default defines the rate limit applied to all consumers not specifically overridden

FieldTypeDefaultValidation
limitsLimitsRequired

Limits

Appears in: Default, Overrides, Provider

Limits defines the actual rate limit values for different time windows

FieldTypeDefaultValidation
hourintegerOptional, minimum: 0
minuteintegerOptional, minimum: 0
secondintegerOptional, minimum: 0

Overrides

Appears in: Consumers

Overrides defines consumer-specific rate limits

FieldTypeDefaultValidation
consumerstringRequired, minLength: 1
limitsLimitsRequired

Provider

Appears in: RateLimit

Provider defines rate limits applied by the API provider (owner)

FieldTypeDefaultValidation
limitsLimitsOptional
optionsRateLimitOptionsOptional

RateLimitOptions

Appears in: Provider

RateLimitOptions defines additional configuration options for rate limiting

FieldTypeDefaultValidation
faultTolerantbooleantrueOptional
hideClientHeadersbooleanfalseOptional

Transformation

Appears in: Agentic, Api, RoverAgentic, RoverApi

Transformation defines optional request/response transformations

FieldTypeDefaultValidation
requestRequestOptional

Request

Appears in: Transformation

Request defines transformations applied to incoming API requests

FieldTypeDefaultValidation
headersHeadersOptional

Headers

Appears in: Request

Headers defines HTTP header modifications for requests

FieldTypeDefaultValidation
addstring[]Optional, minItems: 1, maxItems: 5
removestring[]Optional, minItems: 1, maxItems: 5

Upstreams

Appears in: Agentic, Api

Upstreams defines the backend MCP server endpoints

FieldTypeDefaultValidation
urlstringRequired, Format: uri
weightinteger1Optional, minimum: 1, maximum: 100

Api

Appears in: Exposures

Api defines an API-based service exposure configuration

FieldTypeDefaultValidation
approvalApprovalRequired
basePathstringRequired, pattern: ^/.*$
securitySecurityOptional
trafficTrafficOptional
transformationTransformationOptional
upstreamsUpstreams[]Required, minItems: 1, maxItems: 12
visibilitystringEnterpriseRequired, Enum: World \| Zone \| Enterprise

Event

Appears in: Exposures

Event defines an Event-based service exposure configuration

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

Scopes

Appears in: Event

Scopes defines named scopes with optional publisher-side trigger filtering

FieldTypeDefaultValidation
namestringRequired, minLength: 1
triggerTriggerRequired

Trigger

Appears in: Scopes, RoverEvent

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

ExternalId

Appears in: RoverSpec

ExternalIds carries business identifiers (e.g. PSI, ICTO) attached to this Rover. Each entry is tagged with a scheme. Format and presence are validated per-zone via the zone's ExternalIdPolicies.

FieldTypeDefaultValidation
idstringRequired, minLength: 1, maxLength: 128
schemestringRequired, minLength: 1, maxLength: 32, pattern: ^[a-z][a-z0-9]*$

IpRestrictions

Appears in: RoverSpec

IpRestrictions defines IP-based access restrictions for the entire Application

FieldTypeDefaultValidation
allowstring[]Optional, minItems: 0, maxItems: 10
denystring[]Optional, minItems: 0, maxItems: 10

Permissions

Appears in: RoverSpec

Permissions defines role-based access control permissions for this application

FieldTypeDefaultValidation
actionsstring[]Optional, minItems: 1, maxItems: 50
entriesEntry[]Optional, minItems: 1, maxItems: 50
resourcestringOptional, maxLength: 256
rolestringOptional, maxLength: 256

Entry

Appears in: Permissions

Entries lists role-resource-action tuples (used in resource-oriented and role-oriented formats)

FieldTypeDefaultValidation
actionsstring[]Required, minItems: 1, maxItems: 50
resourcestringOptional
rolestringOptional

Subscriptions

Appears in: RoverSpec

Subscriptions is a list of APIs and Events that this Rover consumes from providers

FieldTypeDefaultValidation
agenticRoverAgenticOptional
apiRoverApiOptional
eventRoverEventOptional

RoverAgentic

Appears in: Subscriptions

Agentic defines an Agentic(MCP or agent) server subscription configuration

FieldTypeDefaultValidation
basePathstringRequired, pattern: ^/[a-z0-9-/]+$
securityRoverSecurityOptional
trafficRoverTrafficOptional
transformationTransformationOptional

RoverSecurity

Appears in: RoverAgentic, RoverApi

Security defines optional security configuration

FieldTypeDefaultValidation
m2mRoverM2M2Optional

RoverM2M2

Appears in: RoverSecurity

M2M defines machine-to-machine authentication configuration

FieldTypeDefaultValidation
basicBasicOptional
clientClientOptional
scopesstring[]Optional, maxItems: 10

RoverTraffic

Appears in: RoverAgentic, RoverApi

Traffic defines optional traffic management configuration

FieldTypeDefaultValidation
failoverCircuitBreakerOptional

RoverApi

Appears in: Subscriptions

Api defines an API-based service subscription configuration

FieldTypeDefaultValidation
basePathstringRequired, pattern: ^/.*$
organizationstringOptional
securityRoverSecurityOptional
trafficRoverTrafficOptional
transformationTransformationOptional

RoverEvent

Appears in: Subscriptions

Event defines an Event-based service subscription configuration

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

Delivery

Appears in: RoverEvent

Delivery configures how events are delivered to the subscriber

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

RoverStatus

Appears in: Rover

Status contains the observed state of the Rover resource

FieldTypeDefaultValidation
aiExposuresAgentCard[]Optional
aiSubscriptionsAgentCard[]Optional
apiExposuresAgentCard[]Optional
apiSubscriptionsAgentCard[]Optional
applicationAgentCardOptional
conditionsCondition[]Optional
eventExposuresAgentCard[]Optional
eventSubscriptionsAgentCard[]Optional
permissionSetsAgentCard[]Optional

Entry Points

Users interact with the Rover domain through three paths:

PathDescription
Rover-CTLCommand-line tool. Reads a local Rover file and sends it to the Rover Server.
Rover ServerREST API. Validates the configuration, uploads specifications to the File Manager, obfuscates secrets through the Secret Manager, and creates the Rover resource in Kubernetes.
Direct kubectlApply a Rover resource directly to the Kubernetes API (for advanced users or automation).

Domain Interactions

  • Application domain — Creates Application resources.
  • API domain — Creates Api, ApiExposure, and ApiSubscription resources.
  • Event domain — Creates EventExposure and EventSubscription resources.
  • Gateway domain — Configures traffic management settings.
  • Identity domain — Configures authentication settings.
  • Approval domain — Integrates approval requirements for exposures.