@stolostron/multicluster-sdk
Version:
Provides extensions and APIs that dynamic plugins can use to leverage multicluster capabilities provided by Red Hat Advanced Cluster Management.
75 lines • 3.31 kB
TypeScript
import { FC } from 'react';
import { FleetResourceEventStreamProps } from '../types';
/**
* A multicluster-aware ResourceEventStream component that displays real-time Kubernetes events
* for resources on managed clusters. Provides equivalent functionality to the OpenShift console's
* ResourceEventStream for resources on managed clusters.
*
* For managed cluster resources, this component establishes a websocket connection to stream
* events from the specified cluster. For hub cluster resources or when no cluster is specified,
* it falls back to the standard OpenShift console ResourceEventStream component.
*
* @see {@link https://github.com/openshift/console/blob/main/frontend/packages/console-dynamic-plugin-sdk/docs/api.md#resourceeventstream} OpenShift Console Dynamic Plugin SDK ResourceEventStream
*
* @component
*
* @param {Object} props - Component properties
* @param {FleetK8sResourceCommon} props.resource - The Kubernetes resource to show events for.
* Must include standard K8s metadata (name, namespace, uid, kind) and an optional cluster property.
*
* @example
* // Display events for a resource on a managed cluster
* <FleetResourceEventStream
* resource={{
* metadata: { name: 'my-pod', namespace: 'default', uid: '123' },
* kind: 'Pod',
* cluster: 'managed-cluster-1'
* }}
* />
*
* @example
* // Display events for a hub cluster resource (falls back to OpenShift console component)
* <FleetResourceEventStream
* resource={{
* metadata: { name: 'my-deployment', namespace: 'openshift-gitops', uid: '456' },
* kind: 'Deployment'
* // No cluster property - uses hub cluster
* }}
* />
*
* @example
* // Display events for a cluster-scoped resource on a managed cluster
* <FleetResourceEventStream
* resource={{
* metadata: { name: 'my-node', uid: '789' },
* kind: 'Node',
* cluster: 'edge-cluster-2'
* }}
* />
*
* @returns {JSX.Element} A rendered event stream component showing real-time Kubernetes events
*
* @remarks
* **Behavior:**
* - When `resource.cluster` is set and differs from hub cluster: Uses fleet websocket connection
* - When `resource.cluster` is undefined or equals hub cluster: Falls back to OpenShift console ResourceEventStream
* - Automatically handles connection lifecycle (open, close, error, reconnect)
* - Supports both namespaced and cluster-scoped resources
* - Displays up to 50 most recent events with real-time streaming
* - Provides play/pause controls for event streaming
*
* **Event Filtering:**
* Events are filtered by `involvedObject.uid`, `involvedObject.name`, and `involvedObject.kind`
* to show only events related to the specified resource.
*
* **Error Handling:**
* - Shows loading spinner during initial connection
* - Displays error states for connection failures
* - Shows empty state when no events exist
* - Automatically attempts reconnection on websocket errors
*
* @see {@link FleetK8sResourceCommon} for resource type definition
* @see {@link https://github.com/openshift/console/tree/master/frontend/packages/console-dynamic-plugin-sdk} OpenShift Console Dynamic Plugin SDK
*/
export declare const FleetResourceEventStream: FC<FleetResourceEventStreamProps>;
//# sourceMappingURL=FleetResourceEventStream.d.ts.map