UNPKG

@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
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