The Kubernetes Operators watch API provides streaming event notifications for operator-related resources including CustomResourceDefinitions, OLM resources (CatalogSources, Subscriptions, InstallPlans, ClusterServiceVersions, OperatorGroups), and custom resources managed by operators. Operators are built on the Kubernetes watch mechanism — controllers start informers that subscribe to watch streams for their owned resource types and trigger reconciliation loops when objects change. These same streams are used by cluster administrators to monitor operator installation progress and CRD lifecycle events.
View SpecView on GitHubAutomationCloud NativeDevOpsInfrastructureKubernetesAsyncAPIWebhooksEvents
Watch stream for CustomResourceDefinition objects cluster-wide. CRD events are generated when new custom resource types are registered, their schemas are updated, or they are deleted. Operator controllers watch this channel to react to CRD establishment before starting their reconciliation loops.
Watch stream for CatalogSource objects in a namespace. OLM's catalog operator watches this stream to start, update, or stop catalog registry pods when catalog sources change.
Watch stream for Subscription objects in a namespace. OLM watches subscriptions to detect when new operator installs are requested or existing subscriptions need to be reconciled.
Watch stream for InstallPlan objects in a namespace. Used to monitor operator installation progress and detect when Manual approval plans are awaiting administrator approval.
Watch stream for ClusterServiceVersion objects in a namespace. Operators and administrative tools watch CSVs to track installation progress, upgrades completing, and operator failures.
Messages
✉
CRDWatchEvent
CustomResourceDefinition Watch Event
Change event for a Kubernetes CRD resource
✉
CatalogSourceWatchEvent
CatalogSource Watch Event
Change event for an OLM CatalogSource resource
✉
SubscriptionWatchEvent
Subscription Watch Event
Change event for an OLM Subscription resource
✉
InstallPlanWatchEvent
InstallPlan Watch Event
Change event for an OLM InstallPlan resource
✉
CSVWatchEvent
ClusterServiceVersion Watch Event
Change event for an OLM ClusterServiceVersion resource
Servers
https
kubernetesApiServerhttps://kubernetes.default.svc
In-cluster Kubernetes API server for watch streaming.
asyncapi: 2.6.0
info:
title: Kubernetes Operators Watch Events
description: >-
The Kubernetes Operators watch API provides streaming event notifications
for operator-related resources including CustomResourceDefinitions, OLM
resources (CatalogSources, Subscriptions, InstallPlans, ClusterServiceVersions,
OperatorGroups), and custom resources managed by operators. Operators are
built on the Kubernetes watch mechanism — controllers start informers that
subscribe to watch streams for their owned resource types and trigger
reconciliation loops when objects change. These same streams are used by
cluster administrators to monitor operator installation progress and CRD
lifecycle events.
version: v1.32.0
contact:
name: Operator Framework Community
url: https://github.com/operator-framework/operator-lifecycle-manager
externalDocs:
description: Kubernetes API Concepts - Watch
url: https://kubernetes.io/docs/reference/using-api/api-concepts/
servers:
kubernetesApiServer:
url: 'https://kubernetes.default.svc'
protocol: https
description: In-cluster Kubernetes API server for watch streaming.
security:
- bearerAuth: []
- clientCertificate: []
channels:
/apis/apiextensions.k8s.io/v1/customresourcedefinitions:
description: >-
Watch stream for CustomResourceDefinition objects cluster-wide. CRD events
are generated when new custom resource types are registered, their schemas
are updated, or they are deleted. Operator controllers watch this channel
to react to CRD establishment before starting their reconciliation loops.
subscribe:
operationId: watchCustomResourceDefinitions
summary: Watch all CustomResourceDefinitions
description: >-
Streams WatchEvent messages for CRD lifecycle events. Fires on CRD
creation (ADDED), schema or version changes (MODIFIED), and deletion
(DELETED). The Established condition in the status indicates when the
API endpoint is ready to serve requests.
message:
$ref: '#/components/messages/CRDWatchEvent'
/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/catalogsources:
description: >-
Watch stream for CatalogSource objects in a namespace. OLM's catalog
operator watches this stream to start, update, or stop catalog registry
pods when catalog sources change.
parameters:
namespace:
$ref: '#/components/parameters/Namespace'
subscribe:
operationId: watchNamespacedCatalogSources
summary: Watch CatalogSources in a namespace
description: >-
Streams WatchEvent messages for CatalogSource changes. Fires when
catalog sources are added, their image or address is updated, or
they are deleted. Used by OLM to maintain catalog registry availability.
message:
$ref: '#/components/messages/CatalogSourceWatchEvent'
/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions:
description: >-
Watch stream for Subscription objects in a namespace. OLM watches
subscriptions to detect when new operator installs are requested or
existing subscriptions need to be reconciled.
parameters:
namespace:
$ref: '#/components/parameters/Namespace'
subscribe:
operationId: watchNamespacedSubscriptions
summary: Watch Subscriptions in a namespace
description: >-
Streams WatchEvent messages for Subscription changes. Fires when
subscriptions are created (triggering InstallPlan generation), their
channel changes, or upgrade approval mode is toggled.
message:
$ref: '#/components/messages/SubscriptionWatchEvent'
/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/installplans:
description: >-
Watch stream for InstallPlan objects in a namespace. Used to monitor
operator installation progress and detect when Manual approval plans
are awaiting administrator approval.
parameters:
namespace:
$ref: '#/components/parameters/Namespace'
subscribe:
operationId: watchNamespacedInstallPlans
summary: Watch InstallPlans in a namespace
description: >-
Streams WatchEvent messages for InstallPlan lifecycle events. Fires
when new plans are created, when they transition between Installing
and Complete phases, or when approval is granted by an administrator.
message:
$ref: '#/components/messages/InstallPlanWatchEvent'
/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/clusterserviceversions:
description: >-
Watch stream for ClusterServiceVersion objects in a namespace. Operators
and administrative tools watch CSVs to track installation progress,
upgrades completing, and operator failures.
parameters:
namespace:
$ref: '#/components/parameters/Namespace'
subscribe:
operationId: watchNamespacedClusterServiceVersions
summary: Watch ClusterServiceVersions in a namespace
description: >-
Streams WatchEvent messages for CSV lifecycle events. Fires when
an operator's CSV transitions through Pending, Installing, Succeeded,
and Failed phases, enabling automated monitoring and alerting of
operator health.
message:
$ref: '#/components/messages/CSVWatchEvent'
components:
securitySchemes:
bearerAuth:
type: httpApiKey
name: Authorization
in: header
description: Kubernetes service account or user bearer token.
clientCertificate:
type: X509
description: Client TLS certificate signed by the cluster CA.
parameters:
Namespace:
description: Namespace name to scope the watch stream.
schema:
type: string
messages:
CRDWatchEvent:
name: CRDWatchEvent
title: CustomResourceDefinition Watch Event
summary: Change event for a Kubernetes CRD resource
description: >-
A watch event delivered when a CustomResourceDefinition is created,
its schema or versions are updated, or it is deleted. The status
Established condition transitions to True when the API endpoint is
live and ready for custom resource instances.
payload:
$ref: '#/components/schemas/WatchEvent'
CatalogSourceWatchEvent:
name: CatalogSourceWatchEvent
title: CatalogSource Watch Event
summary: Change event for an OLM CatalogSource resource
description: >-
A watch event delivered when a CatalogSource is added, its image
reference or update interval changes, or it is removed from the cluster.
payload:
$ref: '#/components/schemas/WatchEvent'
SubscriptionWatchEvent:
name: SubscriptionWatchEvent
title: Subscription Watch Event
summary: Change event for an OLM Subscription resource
description: >-
A watch event delivered when an operator Subscription is created,
its channel or approval mode changes, or it is deleted. Subscription
creation triggers OLM to generate an InstallPlan.
payload:
$ref: '#/components/schemas/WatchEvent'
InstallPlanWatchEvent:
name: InstallPlanWatchEvent
title: InstallPlan Watch Event
summary: Change event for an OLM InstallPlan resource
description: >-
A watch event delivered when an InstallPlan is created by OLM or
when its phase transitions. For Manual plans, this event fires when
the plan is awaiting approval and again when an admin approves it.
payload:
$ref: '#/components/schemas/WatchEvent'
CSVWatchEvent:
name: CSVWatchEvent
title: ClusterServiceVersion Watch Event
summary: Change event for an OLM ClusterServiceVersion resource
description: >-
A watch event delivered when a ClusterServiceVersion is installed,
transitions between phases (Pending, Installing, Succeeded, Failed),
or is deleted during an upgrade or uninstall.
payload:
$ref: '#/components/schemas/WatchEvent'
schemas:
WatchEvent:
type: object
required:
- type
- object
description: >-
A watch event representing a state change to a Kubernetes operator
resource. The type field indicates the change and the object field
contains the full resource state after the change.
properties:
type:
type: string
enum:
- ADDED
- MODIFIED
- DELETED
- BOOKMARK
- ERROR
description: >-
Type of change. ADDED on creation, MODIFIED on any update,
DELETED on removal. BOOKMARK provides a resourceVersion checkpoint.
object:
type: object
description: The resource at the time of the event.
properties:
apiVersion:
type: string
description: API version of the resource.
kind:
type: string
description: >-
Kind of the resource (e.g. CustomResourceDefinition,
CatalogSource, Subscription, InstallPlan, ClusterServiceVersion).
metadata:
type: object
description: Object metadata.
properties:
name:
type: string
description: Resource name.
namespace:
type: string
description: Resource namespace.
uid:
type: string
description: Unique identifier.
resourceVersion:
type: string
description: Resource version for watch resumption.
generation:
type: integer
description: Spec generation.
creationTimestamp:
type: string
format: date-time
description: Creation timestamp.
labels:
type: object
additionalProperties:
type: string
annotations:
type: object
additionalProperties:
type: string