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.

53 lines 2.37 kB
import React from 'react'; import { FleetResourceLinkProps } from '../types/fleet'; /** * Enhanced ResourceLink component for ACM fleet environments. * * Unlike the standard OpenShift ResourceLink which always links to the OpenShift console, * FleetResourceLink provides intelligent routing based on cluster context: * - First-class ACM resources (ManagedCluster) get direct links in all cases * - For hub clusters: Extension-based routing first, then fallback to OpenShift console * - For managed clusters: Extension-based routing first, then fallback to ACM search results * * This prevents users from having to jump between different consoles when managing * multi-cluster resources. * * @see https://github.com/openshift/console/blob/main/frontend/packages/console-dynamic-plugin-sdk/docs/api.md#resourcelink * * @param props - FleetResourceLinkProps extending ResourceLinkProps with cluster information * @param props.cluster - the target cluster name for the resource * @param props.groupVersionKind - K8s GroupVersionKind for the resource * @param props.name - the resource name * @param props.namespace - the resource namespace (required for namespaced resources) * @param props.displayName - optional display name override * @param props.className - additional CSS classes * @param props.inline - whether to display inline * @param props.hideIcon - whether to hide the resource icon * @param props.children - additional content to render * * @example * ```typescript * // Hub cluster VirtualMachine - routes to ACM VM page via extension system * <FleetResourceLink * name="my-vm" * namespace="default" * groupVersionKind={{ group: 'kubevirt.io', version: 'v1', kind: 'VirtualMachine' }} * /> * * // Managed cluster VirtualMachine - routes to ACM search results * <FleetResourceLink * name="remote-vm" * namespace="default" * cluster="prod-cluster" * groupVersionKind={{ group: 'kubevirt.io', version: 'v1', kind: 'VirtualMachine' }} * /> * * // ManagedCluster resource (lives on hub) - cluster prop omitted * <FleetResourceLink * name="prod-cluster" * groupVersionKind={{ group: 'cluster.open-cluster-management.io', version: 'v1', kind: 'ManagedCluster' }} * /> * ``` */ export declare const FleetResourceLink: React.FC<FleetResourceLinkProps>; //# sourceMappingURL=FleetResourceLink.d.ts.map