OpenShift Console Extension Types

June 29, 2026 ยท View on GitHub

  1. console.action/filter
  2. console.action/group
  3. console.action/provider
  4. console.action/resource-provider
  5. console.alert-action
  6. console.catalog/categories-provider
  7. console.catalog/item-filter
  8. console.catalog/item-metadata
  9. console.catalog/item-provider
  10. console.catalog/item-type
  11. console.catalog/item-type-metadata
  12. console.cluster-overview/inventory-item
  13. console.cluster-overview/multiline-utilization-item
  14. console.cluster-overview/utilization-item
  15. console.context-provider
  16. console.create-project-modal
  17. console.dashboards/card
  18. console.dashboards/custom/overview/detail/item
  19. console.dashboards/overview/activity/resource
  20. console.dashboards/overview/health/operator
  21. console.dashboards/overview/health/prometheus
  22. console.dashboards/overview/health/resource
  23. console.dashboards/overview/health/url
  24. console.dashboards/overview/inventory/item
  25. console.dashboards/overview/inventory/item/group
  26. console.dashboards/overview/inventory/item/replacement
  27. console.dashboards/overview/prometheus/activity/resource
  28. console.dashboards/project/overview/item
  29. console.dashboards/tab
  30. console.file-upload
  31. console.flag
  32. console.flag/hookProvider
  33. console.flag/model
  34. console.global-config
  35. console.model-metadata
  36. console.navigation/href
  37. console.navigation/resource-cluster
  38. console.navigation/resource-ns
  39. console.navigation/section
  40. console.navigation/separator
  41. console.node/inventory-item
  42. console.node/status
  43. console.node/sub-nav-tab
  44. console.page/resource/details
  45. console.page/resource/list
  46. console.page/route
  47. console.page/route/standalone
  48. console.perspective
  49. console.project-overview/inventory-item
  50. console.project-overview/utilization-item
  51. console.pvc/alert
  52. console.pvc/create-prop
  53. console.pvc/delete
  54. console.pvc/status
  55. console.redux-reducer
  56. console.resource/create
  57. console.resource/details-item
  58. console.storage-class/provisioner
  59. console.storage-provider
  60. console.tab
  61. console.tab/horizontalNav
  62. console.telemetry/listener
  63. console.topology/adapter/build
  64. console.topology/adapter/network
  65. console.topology/adapter/pod
  66. console.topology/component/factory
  67. console.topology/create/connector
  68. console.topology/data/factory
  69. console.topology/decorator/provider
  70. console.topology/details/resource-alert
  71. console.topology/details/resource-link
  72. console.topology/details/tab
  73. console.topology/details/tab-section
  74. console.topology/display/filters
  75. console.topology/relationship/provider
  76. console.user-preference/group
  77. console.user-preference/item
  78. console.yaml-template
  79. dev-console.add/action
  80. dev-console.add/action-group
  81. dev-console.import/environment

console.action/filter

Summary

ActionFilter can be used to filter an action

Properties

NameValue TypeOptionalDescription
contextIdstringnoThe context ID helps to narrow the scope of contributed actions to a particular area of the application. Ex - topology, helm
filterCodeRef<(scope: any, action: Action) => boolean>noA function which will filter actions based on some conditions.
scope: The scope in which actions should be provided for.
Note: hook may be required if we want to remove the ModifyCount action from a deployment with HPA

console.action/group

Summary

ActionGroup contributes an action group that can also be a submenu

Properties

NameValue TypeOptionalDescription
idstringnoID used to identify the action section.
labelstringyesThe label to display in the UI.
Required for submenus.
submenubooleanyesWhether this group should be displayed as submenu
insertBeforestring | string[]yesInsert this item before the item referenced here.
For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here.
For arrays, the first one found in order is used.
insertBefore takes precedence.

console.action/provider

Summary

ActionProvider contributes a hook that returns list of actions for specific context

Properties

NameValue TypeOptionalDescription
contextIdstringnoThe context ID helps to narrow the scope of contributed actions to a particular area of the application. Ex - topology, helm
providerCodeRef<ExtensionHook<Action[]>>noA react hook which returns actions for the given scope.
If contextId = resource then the scope will always be a K8s resource object

console.action/resource-provider

Summary

ResourceActionProvider contributes a hook that returns list of actions for specific resource model

Properties

NameValue TypeOptionalDescription
modelExtensionK8sKindVersionModelnoThe model for which this provider provides actions for.
providerCodeRef<ExtensionHook<Action[]>>noA react hook which returns actions for the given resource model

console.alert-action

Summary

This extension can be used to trigger a specific action when a specific Prometheus alert is observed by the Console based on its rule.name value.

Properties

NameValue TypeOptionalDescription
alertstringnoAlert name as defined by alert.rule.name property
textstringnoAction text
actionCodeRef<(alert: Alert, launchModal: LaunchOverlay) => void>noFunction to perform side effect

console.catalog/categories-provider

Summary

This extension allows plugins to contribute a set of categories for a specific catalog item type.

Properties

NameValue TypeOptionalDescription
providerCodeRef<ExtensionHook<CatalogCategory[]>>noA hook that returns categories.
catalogIdstringyesThe catalog ID the categories are for. If not specified, the categories will be available for all catalogs.
typestringyesThe catalog item type for these categories. If not specified, the categories will be available for all types.

console.catalog/item-filter

Summary

This extension can be used for plugins to contribute a handler that can filter specific catalog items.
For example, the plugin can contribute a filter that filters helm charts from specific provider.

Properties

NameValue TypeOptionalDescription
catalogIdstring | string[]noThe unique identifier for the catalog this provider contributes to.
typestringnoType ID for the catalog item type.
filterCodeRef<(item: CatalogItem) => boolean>noFilters items of a specific type. Value is a function that takes CatalogItem[] and returns a subset based on the filter criteria.

console.catalog/item-metadata

Summary

This extension can be used to contribute a provider that adds extra metadata to specific catalog items.

Properties

NameValue TypeOptionalDescription
catalogIdstring | string[]noThe unique identifier for the catalog this provider contributes to.
typestringnoType ID for the catalog item type.
providerCodeRef<ExtensionHook<CatalogItemMetadataProviderFunction, CatalogExtensionHookOptions>>noA hook which returns a function that will be used to provide metadata to catalog items of a specific type.

console.catalog/item-provider

Summary

This extension allows plugins to contribute a provider for a catalog item type. For example, a Helm Plugin can add a provider
that fetches all the Helm Charts. This extension can also be used by other plugins to add more items to a specific catalog item type.

Properties

NameValue TypeOptionalDescription
catalogIdstring | string[]noThe unique identifier for the catalog this provider contributes to.
typestringnoType ID for the catalog item type.
titlestringnoTitle for the catalog item provider
providerCodeRef<ExtensionHook<CatalogItem<any>[], CatalogExtensionHookOptions>>noFetch items and normalize it for the catalog. Value is a react effect hook.
prioritynumberyesPriority for this provider. Defaults to 0. Higher priority providers may override catalog
items provided by other providers.

console.catalog/item-type

Summary

This extension allows plugins to contribute a new type of catalog item. For example, a Helm plugin can define
a new catalog item type as HelmCharts that it wants to contribute to the Software Catalog.

Properties

NameValue TypeOptionalDescription
typestringnoType for the catalog item.
titlestringnoTitle for the catalog item.
catalogDescriptionstring | CodeRef<ComponentType>yesDescription for the type specific catalog.
typeDescriptionstringyesDescription for the catalog item type.
sortFilterGroupsbooleanyesDetermine if filter groups should be sorted alphabetically. Defaults to true.
filtersCatalogItemAttribute[]yesCustom filters specific to the catalog item.
groupingsCatalogItemAttribute[]yesCustom groupings specific to the catalog item.

console.catalog/item-type-metadata

Summary

This extension allows plugins to contribute extra metadata like custom filters or groupings for any catalog item type.
For example, a plugin can attach a custom filter for HelmCharts that can filter based on chart provider.

Properties

NameValue TypeOptionalDescription
typestringnoType for the catalog item.
filtersCatalogItemAttribute[]yesCustom filters specific to the catalog item.
groupingsCatalogItemAttribute[]yesCustom groupings specific to the catalog item.

console.cluster-overview/inventory-item

Summary

Adds a new inventory item into cluster overview page.

Properties

NameValue TypeOptionalDescription
componentCodeRef<ComponentType>noThe component to be rendered.

console.cluster-overview/multiline-utilization-item

Summary

Adds a new cluster overview multiline utilization item.

Properties

NameValue TypeOptionalDescription
titlestringnoThe title of the utilization item.
getUtilizationQueriesCodeRef<GetMultilineQueries>noPrometheus utilization query.
humanizeCodeRef<Humanize>noConvert prometheus data to human readable form.
TopConsumerPopoversCodeRef<ComponentType<TopConsumerPopoverProps>[]>yesShows Top consumer popover instead of plain value

console.cluster-overview/utilization-item

Summary

Adds a new cluster overview utilization item.

Properties

NameValue TypeOptionalDescription
titlestringnoThe title of the utilization item.
getUtilizationQueryCodeRef<GetQuery>noPrometheus utilization query.
humanizeCodeRef<Humanize>noConvert prometheus data to human readable form.
getTotalQueryCodeRef<GetQuery>yesPrometheus total query.
getRequestQueryCodeRef<GetQuery>yesPrometheus request query.
getLimitQueryCodeRef<GetQuery>yesPrometheus limit query.
TopConsumerPopoverCodeRef<ComponentType<TopConsumerPopoverProps>>yesShows Top consumer popover instead of plain value

console.context-provider

Summary

Adds new React context provider to Console application root.

Properties

NameValue TypeOptionalDescription
providerCodeRef<Provider<T>>noContext Provider component.
useValueHookCodeRef<() => T>noHook for the Context value.

console.create-project-modal

Summary

This extension can be used to pass a component that will be rendered in place of the standard create project modal.

Properties

NameValue TypeOptionalDescription
componentCodeRef<ModalComponent<CreateProjectModalProps>>noA component to render in place of the create project modal

console.dashboards/card

Summary

Adds a new dashboard card.

Properties

NameValue TypeOptionalDescription
tabstringnoThe id of the dashboard tab to which the card will be added.
position'MAIN' | 'LEFT' | 'RIGHT'noThe grid position of the card on the dashboard.
componentCodeRef<React.ComponentType<{}>>noDashboard card component.
spanOverviewCardSpanyesCard's vertical span in the column. Ignored for small screens, defaults to 12.

console.dashboards/custom/overview/detail/item

Summary

Adds an item to the Details card of Overview Dashboard

Properties

NameValue TypeOptionalDescription
titlestringnoDetails card title
componentCodeRef<ComponentType>noThe value, rendered by the OverviewDetailItem component
valueClassNamestringyesOptional class name for the value
isLoadingCodeRef<() => boolean>yesFunction returning the loading state of the component
errorCodeRef<() => string>yesFunction returning errors to be displayed by the component

console.dashboards/overview/activity/resource

Summary

Adds an activity to the Activity Card of Overview Dashboard where the triggering of activity is based on watching a K8s resource.

Properties

NameValue TypeOptionalDescription
k8sResourceCodeRef<WatchK8sResource & { prop: string; } & { isList: true; }>noThe utilization item to be replaced.
componentCodeRef<React.ComponentType<K8sActivityProps<T>>>noThe action component.
isActivityCodeRef<(resource: T) => boolean>yesFunction which determines if the given resource represents the action. If not defined, every resource represents activity.
getTimestampCodeRef<(resource: T) => Date>yesTimestamp for the given action, which will be used for ordering.

console.dashboards/overview/health/operator

Summary

Adds a health subsystem to the status card of Overview dashboard where the source of status is a K8s REST API.

Properties

NameValue TypeOptionalDescription
titlestringnoTitle of operators section in the popup.
resourcesCodeRef<WatchK8sResourceWithProp[]>noKubernetes resources which will be fetched and passed to healthHandler.
getOperatorsWithStatusesCodeRef<GetOperatorsWithStatuses<T>>yesResolves status for the operators.
operatorRowLoaderCodeRef<React.ComponentType<OperatorRowProps<T>>>yesLoader for popup row component.
viewAllLinkstringyesLinks to all resources page. If not provided then a list page of the first resource from resources prop is used.

console.dashboards/overview/health/prometheus

Summary

Adds a health subsystem to the status card of Overview dashboard where the source of status is Prometheus.

Properties

NameValue TypeOptionalDescription
titlestringnoThe display name of the subsystem.
queriesstring[]noThe Prometheus queries
healthHandlerCodeRef<PrometheusHealthHandler>noResolve the subsystem's health.
additionalResourceCodeRef<WatchK8sResourceWithProp>yesAdditional resource which will be fetched and passed to healthHandler.
popupComponentCodeRef<React.ComponentType<PrometheusHealthPopupProps>>yesLoader for popup content. If defined, a health item will be represented as a link which opens popup with given content.
popupTitlestringyesThe title of the popover.
popupClassnamestringyesOptional classname for the popup top-level component.
popupKeepOnOutsideClickbooleanyesIf true, the popup will stay open when clicked outside of its boundary. Default: false
disallowedControlPlaneTopologystring[]yesControl plane topology for which the subsystem should be hidden.

console.dashboards/overview/health/resource

Summary

Adds a health subsystem to the status card of Overview dashboard where the source of status is a K8s Resource.

Properties

NameValue TypeOptionalDescription
titlestringnoThe display name of the subsystem.
resourcesCodeRef<WatchK8sResources<T>>noKubernetes resources which will be fetched and passed to healthHandler.
healthHandlerCodeRef<ResourceHealthHandler<T>>noResolve the subsystem's health.
popupComponentCodeRef<React.ComponentType<{ namespace?: string; } | WatchK8sResults<T>>>yesLoader for popup content. If defined, a health item will be represented as a link which opens popup with given content.
popupTitlestringyesThe title of the popover.

console.dashboards/overview/health/url

Summary

Adds a health subsystem to the status card of Overview dashboard where the source of status is a K8s REST API.

Properties

NameValue TypeOptionalDescription
titlestringnoThe display name of the subsystem.
urlstringnoThe URL to fetch data from. It will be prefixed with base k8s URL.
healthHandlerCodeRef<URLHealthHandler<T>>noResolve the subsystem's health.
fetchCodeRef<Fetch>yesCustom function to fetch data from the URL.
If none is specified, default one (coFetchJson) will be used.
Response is then parsed by healthHandler.
additionalResourceCodeRef<WatchK8sResourceWithProp>yesAdditional resource which will be fetched and passed to healthHandler.
popupComponentCodeRef<React.ComponentType<{ healthResult?: T; healthResultError?: any; k8sResult?: WatchK8sResultsObject<R>; }>>yesLoader for popup content. If defined, a health item will be represented as a link which opens popup with given content.
popupTitlestringyesThe title of the popover.

console.dashboards/overview/inventory/item

Summary

Adds a resource tile to the overview inventory card.

Properties

NameValue TypeOptionalDescription
modelCodeRef<T>noThe model for resource which will be fetched. Used to get the model's label or abbr.
mapperCodeRef<StatusGroupMapper<T, R>>yesFunction which maps various statuses to groups.
additionalResourcesCodeRef<WatchK8sResources<R>>yesAdditional resources which will be fetched and passed to the mapper function.

console.dashboards/overview/inventory/item/group

Summary

Adds an inventory status group.

Properties

NameValue TypeOptionalDescription
idstringnoThe id of the status group.
iconCodeRef<React.ReactElement<any, string | React.JSXElementConstructor<any>>>noReact component representing the status group icon.

console.dashboards/overview/inventory/item/replacement

Summary

Replaces an overview inventory card.

Properties

NameValue TypeOptionalDescription
modelCodeRef<T>noThe model for resource which will be fetched. Used to get the model's label or abbr.
mapperCodeRef<StatusGroupMapper<T, R>>yesFunction which maps various statuses to groups.
additionalResourcesCodeRef<WatchK8sResources<R>>yesAdditional resources which will be fetched and passed to the mapper function.

console.dashboards/overview/prometheus/activity/resource

Summary

Adds an activity to the Activity Card of Prometheus Overview Dashboard where the triggering of activity is based on watching a K8s resource.

Properties

NameValue TypeOptionalDescription
queriesstring[]noQueries to watch
componentCodeRef<React.ComponentType<PrometheusActivityProps>>noThe action component.
isActivityCodeRef<(results: PrometheusResponse[]) => boolean>yesFunction which determines if the given resource represents the action. If not defined, every resource represents activity.

console.dashboards/project/overview/item

Summary

Adds a resource tile to the project overview inventory card.

Properties

NameValue TypeOptionalDescription
modelCodeRef<T>noThe model for resource which will be fetched. Used to get the model's label or abbr.
mapperCodeRef<StatusGroupMapper<T, R>>yesFunction which maps various statuses to groups.
additionalResourcesCodeRef<WatchK8sResources<R>>yesAdditional resources which will be fetched and passed to the mapper function.

console.dashboards/tab

Summary

Adds a new dashboard tab, placed after the Overview tab.

Properties

NameValue TypeOptionalDescription
idstringnoA unique tab identifier, used as tab link href and when adding cards to this tab.
navSection'home' | 'storage'noNavSection to which the tab belongs to
titlestringnoThe title of the tab.

console.file-upload

Summary

This extension can be used to provide a handler for the file drop action on specific file extensions.

Properties

NameValue TypeOptionalDescription
fileExtensionsstring[]noSupported file extensions.
handlerCodeRef<FileUploadHandler>noFunction which handles the file drop action.
Can optionally return a path to navigate to after processing the file.
If a path is returned, the Console will navigate to that location using React Router.

console.flag

Summary

Gives full control over Console feature flags.

Properties

NameValue TypeOptionalDescription
handlerCodeRef<FeatureFlagHandler>noUsed to set/unset arbitrary feature flags.

console.flag/hookProvider

Summary

Gives full control over Console feature flags with hook handlers.

Properties

NameValue TypeOptionalDescription
handlerCodeRef<FeatureFlagHandler>noUsed to set/unset arbitrary feature flags.

console.flag/model

Summary

Adds new Console feature flag driven by the presence of a CRD on the cluster.

Properties

NameValue TypeOptionalDescription
flagstringnoThe name of the flag to set once the CRD is detected.
modelExtensionK8sModelnoThe model which refers to a CustomResourceDefinition.

console.global-config

Summary

This extension identifies a resource used to manage the configuration of the cluster.
A link to the resource will be added to the Administration - Cluster Settings - Configuration page.

Properties

NameValue TypeOptionalDescription
idstringnoUnique identifier for the cluster config resource instance.
namestringnoThe name of the cluster config resource instance.
modelExtensionK8sModelnoThe model which refers to a cluster config resource.
namespacestringnoThe namespace of the cluster config resource instance.

console.model-metadata

Summary

Customize the display of models by overriding values retrieved and generated through API discovery.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sGroupModelnoThe model to customize. May specify only a group, or optional version and kind.
badgeModelBadgeyesWhether to consider this model reference as tech preview or dev preview.
colorstringyesThe color to associate to this model.
labelstringyesOverride the label. Requires kind be provided.
labelPluralstringyesOverride the plural label. Requires kind be provided.
abbrstringyesCustomize the abbreviation. Defaults to All uppercase chars in the kind up to 4 characters long. Requires kind be provided.

console.navigation/href

Summary

This extension can be used to contribute a navigation item that points to a specific link in the UI.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this item.
namestringnoThe name of this item.
hrefstringnoThe link href value.
perspectivestringyesThe perspective ID this item belongs to. If not specified, contributes to the default perspective.
sectionstringyesNavigation section this item belongs to. If not specified, render this item as a top level link.
dataAttributes{ [key: string]: string; }yesAdds data attributes to the DOM.
startsWithstring[]yesMark this item as active when the URL starts with one of these paths.
insertBeforestring | string[]yesInsert this item before the item referenced here. For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here. For arrays, the first one found in order is used. insertBefore takes precedence.
namespacedbooleanyesif true, adds /ns/active-namespace to the end
prefixNamespacedbooleanyesif true, adds /k8s/ns/active-namespace to the begining

console.navigation/resource-cluster

Summary

This extension can be used to contribute a navigation item that points to a cluster resource details page.
The K8s model of that resource can be used to define the navigation item.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this item.
modelExtensionK8sModelnoThe model for which this nav item links to.
perspectivestringyesThe perspective ID this item belongs to. If not specified, contributes to the default perspective.
sectionstringyesNavigation section this item belongs to. If not specified, render this item as a top level link.
dataAttributes{ [key: string]: string; }yesAdds data attributes to the DOM.
startsWithstring[]yesMark this item as active when the URL starts with one of these paths.
insertBeforestring | string[]yesInsert this item before the item referenced here. For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here. For arrays, the first one found in order is used. insertBefore takes precedence.
namestringyesOverrides the default name. If not supplied the name of the link will equal the plural value of the model.

console.navigation/resource-ns

Summary

This extension can be used to contribute a navigation item that points to a namespaced resource details page.
The K8s model of that resource can be used to define the navigation item.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this item.
modelExtensionK8sModelnoThe model for which this nav item links to.
perspectivestringyesThe perspective ID this item belongs to. If not specified, contributes to the default perspective.
sectionstringyesNavigation section this item belongs to. If not specified, render this item as a top level link.
dataAttributes{ [key: string]: string; }yesAdds data attributes to the DOM.
startsWithstring[]yesMark this item as active when the URL starts with one of these paths.
insertBeforestring | string[]yesInsert this item before the item referenced here. For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here. For arrays, the first one found in order is used. insertBefore takes precedence.
namestringyesOverrides the default name. If not supplied the name of the link will equal the plural value of the model.

console.navigation/section

Summary

This extension can be used to define a new section of navigation items in the navigation tab.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this item.
insertBeforestring | string[]yesInsert this item before the item referenced here. For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here. For arrays, the first one found in order is used. insertBefore takes precedence.
perspectivestringyesThe perspective ID this item belongs to. If not specified, contributes to the default perspective.
dataAttributes{ [key: string]: string; }yesAdds data attributes to the DOM.
namestringyesName of this section. If not supplied, only a separator will be shown above the section.

console.navigation/separator

Summary

This extension can be used to add a separator between navigation items in the navigation.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this item.
sectionstringyesNavigation section this item belongs to. If not specified, render this item as a top level link.
insertBeforestring | string[]yesInsert this item before the item referenced here. For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here. For arrays, the first one found in order is used. insertBefore takes precedence.
perspectivestringyesThe perspective ID this item belongs to. If not specified, contributes to the default perspective.
dataAttributes{ [key: string]: string; }yesAdds data attributes to the DOM.

console.node/inventory-item

Summary

Use this extension to add inventory items to the Node inventory card.

Example implementation:
tsx<br/>const MyInventoryItem: React.FC<InventoryItemComponentProps> = ({ obj }) => {<br/> const count = calculateCount(obj);<br/> return <InventoryItem title="My Resource" count={count} />;<br/>};<br/>

Properties

NameValue TypeOptionalDescription
prioritynumbernoThe inventory item that displays in the node inventory card. The UI uses the priority value to order this item relative to other inventory items. For example, Images: 70.

Note: Inventory items are shown in priority order from highest to lowest. Current node inventory item priorities are:
Pods: 90
Images: 70
componentCodeRef<ComponentType<InventoryItemComponentProps>>noThe React component that renders in the inventory card.

console.node/status

Summary

Use this extension to add additional states to a Node resource.

Properties

NameValue TypeOptionalDescription
isActiveCodeRef<IsNodeStatusActive<T>>noReturns true if the additional state is active.
PopoverContentCodeRef<ComponentType<NodePopoverContentProps<T>>>noReact component that will be rendered in status popover
titlestringnoTitle of the additional Node state
resourcesWatchK8sResources<T>yesResources required to determine the extra state.

console.node/sub-nav-tab

Summary

Use this extension to add custom sub-tabs to the Node details page.

Notes:
- The tabId must be unique across all tabs for the parent tab. If multiple plugins register the same tabId, the UI displays only the first one loaded.
- The name property supports i18n translation keys in the format %namespace~key%.
- The UI sorts tabs by priority in descending order with highest priority first. If two tabs have the same priority, the UI sorts them alphabetically by name.
- The component receives the Node resource as the obj prop using SubPageComponentProps.

Properties

NameValue TypeOptionalDescription
parentTab'configuration' | 'health' | 'workload'noWhich detail tab to add the sub-tab to. Valid values: configuration, health, workload.
page{ tabId: string; name: string; priority: number; }noThe page that displays as a sub-tab. It requires the tab name and its corresponding priority.

Notes:
The UI displays tabs in priority order from highest to lowest. Default built-in tab priorities include:
- configuration:
- storage/70
- machine/50
- high-availability/30
- health:
- performance/70
- logs/30
- workload:
- pods/30
componentCodeRef<ComponentType<SubPageComponentProps<NodeKind>>>noThe component that renders the sub-tab contents. It receives the Node resource as the obj prop.

console.page/resource/details

Summary

Adds a new resource details page to Console router.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sGroupKindModelnoThe model for which this resource page links to.
componentCodeRef<React.ComponentType<{ namespace: string; model: ExtensionK8sModel; }>>noThe component to be rendered when the route matches.

console.page/resource/list

Summary

Adds a new resource list page to Console router.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sGroupKindModelnoThe model for which this resource page links to.
componentCodeRef<React.ComponentType<{ namespace: string; model: ExtensionK8sModel; }>>noThe component to be rendered when the route matches.

console.page/route

Summary

Adds a new page to the Console router.

Console application uses React Router v7.

Note that React Router v7 no longer supports passing a string array to the Route path prop.
Console retains this functionality by rendering multiple Route instances. To ensure the route
matches the correct paths, consider using exact: true and sorting your Route path values
from most specific to least specific.

Also note that React Router v7 no longer supports Route exact prop, i.e. paths are matched
as exact: true by default. Console retains the original behavior for backwards compatibility.
Use exact: true unless you want to match more of the URL.

Do not use this extension for resource list and details pages. To add a list or details page
for a resource, use the console.navigation/resource-ns extension instead.

Properties

NameValue TypeOptionalDescription
componentCodeRef<React.ComponentType<{}>>noThe component to be rendered when the route matches.
pathstring | string[]noValid URL path or array of paths. Note that React Router v7 does not use path-to-regexp.
perspectivestringyesThe perspective this page belongs to. If not specified, applies to all perspectives.
exactbooleanyesWhen true, the path must match the URL exactly.

console.page/route/standalone

Summary

Adds a new standalone page rendered outside the common Console page layout.

Console application uses React Router v7.

Properties

NameValue TypeOptionalDescription
pathstring | string[]noValid URL path or array of paths. Note that React Router v7 does not use path-to-regexp.
componentCodeRef<React.ComponentType<{}>>noThe component to be rendered when the route matches.
exactbooleanyesWhen true, the path must match the URL exactly.

console.perspective

Summary

This extension contributes a new perspective to the console which enables customization of the navigation menu.

Properties

NameValue TypeOptionalDescription
idstringnoThe perspective identifier.
namestringnoThe perspective display name.
iconCodeRef<LazyComponent>noThe perspective display icon.
landingPageURLCodeRef<(flags: { [key: string]: boolean; }, isFirstVisit: boolean) => string>noThe function to get perspective landing page URL.
importRedirectURLCodeRef<(namespace: string) => string>noThe function to get a relative redirect URL for import flow.
defaultbooleanyesWhether the perspective is the default. There can only be one default.
defaultPinsExtensionK8sModel[]yesDefault pinned resources on the nav
usePerspectiveDetectionCodeRef<() => [boolean, boolean]>yesThe hook to detect default perspective

console.project-overview/inventory-item

Summary

Adds a new inventory item into project overview page.

Properties

NameValue TypeOptionalDescription
componentCodeRef<ComponentType<{ projectName: string; }>>noThe component to be rendered.

console.project-overview/utilization-item

Summary

Adds a new project overview utilization item.

Properties

NameValue TypeOptionalDescription
titlestringnoThe title of the utilization item.
getUtilizationQueryCodeRef<GetProjectQuery>noPrometheus utilization query.
humanizeCodeRef<Humanize>noConvert prometheus data to human readable form.
getTotalQueryCodeRef<GetProjectQuery>yesPrometheus total query.
getRequestQueryCodeRef<GetProjectQuery>yesPrometheus request query.
getLimitQueryCodeRef<GetProjectQuery>yesPrometheus limit query.
TopConsumerPopoverCodeRef<ComponentType<TopConsumerPopoverProps>>yesShows Top consumer popover instead of plain value

console.pvc/alert

Summary

This extension can be used to contribute custom alerts on the PVC details page.

Properties

NameValue TypeOptionalDescription
alertCodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>noThe alert component.

console.pvc/create-prop

Summary

This extension can be used to specify additional properties that will be used when creating PVC resources on the PVC list page.

Properties

NameValue TypeOptionalDescription
labelstringnoLabel for the create prop action.
pathstringnoPath for the create prop action.

console.pvc/delete

Summary

This extension allows hooking into deleting PVC resources. It can provide an alert with additional information and custom PVC delete logic.

Properties

NameValue TypeOptionalDescription
predicateCodeRef<(pvc: K8sResourceCommon) => boolean>noPredicate that tells whether to use the extension or not.
onPVCKillCodeRef<(pvc: K8sResourceCommon) => Promise<void>>noMethod for the PVC delete operation.
alertCodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>noAlert component to show additional information.

console.pvc/status

Summary

This extension can be used to contribute an additional status component for PVC resources on the cluster dashboard page.

Properties

NameValue TypeOptionalDescription
prioritynumbernoPriority for the status component. Bigger value means higher priority.
statusCodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>noThe status component.
predicateCodeRef<(pvc: K8sResourceCommon) => boolean>noPredicate that tells whether to render the status component or not.

console.redux-reducer

Summary

Adds new reducer to Console Redux store which operates on plugins.<scope> substate.

Properties

NameValue TypeOptionalDescription
scopestringnoThe key to represent the reducer-managed substate within the Redux state object.
reducerCodeRef<Reducer>noThe reducer function, operating on the reducer-managed substate.

console.resource/create

Summary

This extension allows plugins to provide a custom component (ie wizard or form) for specific resources,
which will be rendered, when users try to create a new resource instance.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sModelnoThe model for which this create resource page will be rendered.
componentCodeRef<React.ComponentType<CreateResourceComponentProps>>noThe component to be rendered when the model matches

console.resource/details-item

Summary

Adds a new details item to the default resource summary on the details page.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sModelnoThe subject resource's API group, version, and kind.
idstringnoA unique identifier.
columnDetailsItemColumnnoDetermines if the item will appear in the 'left' or 'right' column of the resource summary on
the details page. Default: 'right'
titlestringnoThe details item title.
descriptionstringyesAn optional description that will appear in the title popover.
pathstringyesAn optional, fully-qualified path to a resource property to used as the details item
value. Only primitive type
values can be rendered directly. Use the component property to handle other data types.
componentCodeRef<React.ComponentType<DetailsItemComponentProps<K8sResourceCommon, any>>>yesAn optional React component that will render the details item value.
sortWeightnumberyesAn optional sort weight, relative to all other details items in the same column. Represented
by any valid JavaScript
Number
.
Items in each column are sorted independently, lowest to highest. Items without sort weights
are sorted after items with sort weights.

console.storage-class/provisioner

Summary

Adds a new storage class provisioner as an option during storage class creation.

Properties

NameValue TypeOptionalDescription
CSIProvisionerDetailsyesContainer Storage Interface provisioner type
OTHERSProvisionerDetailsyesOther provisioner type

console.storage-provider

Summary

This extension can be used to contribute a new storage provider to select,
when attaching storage and a provider specific component.

Properties

NameValue TypeOptionalDescription
namestringnoDisplayed name of the provider.
ComponentCodeRef<React.ComponentType<{}>>noProvider specific component to render.

console.tab

Summary

Adds a tab to a horizontal nav matching the contextId.

Properties

NameValue TypeOptionalDescription
contextIdstringnoContext ID assigned to the horizontal nav in which the tab will be injected.
Possible values:
- dev-console-observe
namestringnoThe display label of the tab
hrefstringnoThe href appended to the existing URL
componentCodeRef<React.ComponentType<PageComponentProps<K8sResourceCommon>>>noTab content component.

console.tab/horizontalNav

Summary

This extension can be used to add a tab on the resource details page.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sKindVersionModelnoThe model for which this provider show tab.
page{ name: string; href: string; }noThe page to be show in horizontal tab. It takes tab name as name and href of the tab.
Note: any special characters in href are encoded, and href is treated as a single
path element.
componentCodeRef<React.ComponentType<PageComponentProps<K8sResourceCommon>>>noThe component to be rendered when the route matches.

console.telemetry/listener

Summary

This component can be used to register a listener function receiving telemetry events.
These events include user identification, page navigation, and other application specific events.
The listener may use this data for reporting and analytics purposes.

Properties

NameValue TypeOptionalDescription
listenerCodeRef<TelemetryEventListener>noListen for telemetry events

console.topology/adapter/build

Summary

BuildAdapter contributes an adapter to adapt element to data that can be used by Build component

Properties

NameValue TypeOptionalDescription
adaptCodeRef<(element: GraphElement) => AdapterDataType<BuildConfigData> | undefined>noadapter to adapt element to data that can be used by Build component.

console.topology/adapter/network

Summary

NetworkAdpater contributes an adapter to adapt element to data that can be used by Networking component

Properties

NameValue TypeOptionalDescription
adaptCodeRef<(element: GraphElement) => NetworkAdapterType | undefined>noadapter to adapt element to data that can be used by Networking component.

console.topology/adapter/pod

Summary

PodAdapter contributes an adapter to adapt element to data that can be used by Pod component

Properties

NameValue TypeOptionalDescription
adaptCodeRef<(element: GraphElement) => AdapterDataType<PodsAdapterDataType> | undefined>noadapter to adapt element to data that can be used by Pod component.

console.topology/component/factory

Summary

Getter for a ViewComponentFactory

Properties

NameValue TypeOptionalDescription
getFactoryCodeRef<ViewComponentFactory>noGetter for a ViewComponentFactory

console.topology/create/connector

Summary

Getter for the create connector function

Properties

NameValue TypeOptionalDescription
getCreateConnectorCodeRef<CreateConnectionGetter>noGetter for the create connector function

console.topology/data/factory

Summary

Topology Data Model Factory Extension

Properties

NameValue TypeOptionalDescription
idstringnoUnique ID for the factory.
prioritynumbernoPriority for the factory
resourcesWatchK8sResourcesGeneric | CodeRef<() => Promise<WatchK8sResourcesGeneric>>yesResources to be fetched from useK8sWatchResources hook.
workloadKeysstring[]yesKeys in resources containing workloads.
getDataModelCodeRef<TopologyDataModelGetter>yesGetter for the data model factory
isResourceDepictedCodeRef<TopologyDataModelDepicted>yesGetter for function to determine if a resource is depicted by this model factory
getDataModelReconcilerCodeRef<TopologyDataModelReconciler>yesGetter for function to reconcile data model after all extensions' models have loaded

console.topology/decorator/provider

Summary

Topology Decorator Provider Extension

Properties

NameValue TypeOptionalDescription
idstringnoid for topology decorator specific to the extension
prioritynumbernopriority for topology decorator specific to the extension
quadrantTopologyQuadrantnoquadrant for topology decorator specific to the extension
decoratorCodeRef<TopologyDecoratorGetter>nodecorator specific to the extension

console.topology/details/resource-alert

Summary

DetailsResourceAlert contributes an alert for specific topology context or graph element.

Properties

NameValue TypeOptionalDescription
idstringnoThe ID of this alert. Used to save state if the alert shouldn't be shown after dismissed.
contentProviderCodeRef<(element: GraphElement) => DetailsResourceAlertContent | null>noHook to return the contents of the Alert.

Summary

DetailsResourceLink contributes a link for specific topology context or graph element.

Properties

NameValue TypeOptionalDescription
linkCodeRef<(element: GraphElement) => ReactNode>noReturn the resource link if provided, otherwise undefined.
Use ResourceIcon and ResourceLink for styles.
prioritynumberyesA higher priority factory will get the first chance to create the link.

console.topology/details/tab

Summary

DetailsTab contributes a tab for the topology details panel.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this details tab.
labelstringnoThe tab label to display in the UI.
insertBeforestring | string[]yesInsert this item before the item referenced here.
For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here.
For arrays, the first one found in order is used.
insertBefore takes precedence.

console.topology/details/tab-section

Summary

DetailsTabSection contributes a section for a specific tab in topology details panel.

Properties

NameValue TypeOptionalDescription
idstringnoA unique identifier for this details tab section.
tabstringnoThe parent tab ID that this section should contribute to.
providerCodeRef<DetailsTabSectionExtensionHook>noA hook that returns a component or null/undefined that will be rendered
in the topology sidebar.
SDK component: <Section title={}>... padded area
sectionCodeRef<(element: GraphElement, renderNull?: () => null) => ReactNode>no@deprecated Fallback if no provider is defined. renderNull is a no-op already.
insertBeforestring | string[]yesInsert this item before the item referenced here.
For arrays, the first one found in order is used.
insertAfterstring | string[]yesInsert this item after the item referenced here.
For arrays, the first one found in order is used.
insertBefore takes precedence.

console.topology/display/filters

Summary

Topology Display Filters Extension

Properties

NameValue TypeOptionalDescription
getTopologyFiltersCodeRef<() => TopologyDisplayOption[]>noGetter for topology filters specific to the extension
applyDisplayOptionsCodeRef<TopologyApplyDisplayOptions>noFunction to apply filters to the model

console.topology/relationship/provider

Summary

Topology relationship provider connector extension

Properties

NameValue TypeOptionalDescription
providesCodeRef<RelationshipProviderProvides>nouse to determine if a connection can be created between the source and target node
tooltipstringnotooltip to show when connector operation is hovering over the drop target ex: "Create a Visual Connector"
createCodeRef<RelationshipProviderCreate>nocallback to execute when connector is drop over target node to create a connection
prioritynumbernopriority for relationship, higher will be preferred in case of multiple

console.user-preference/group

Summary

This extension can be used to add a group on the console user-preferences page.
It will appear as a vertical tab option on the console user-preferences page.

Properties

NameValue TypeOptionalDescription
idstringnoID used to identify the user preference group.
labelstringnoThe label of the user preference group.
insertBeforestringyesID of user preference group before which this group should be placed.
insertAfterstringyesID of user preference group after which this group should be placed.

console.user-preference/item

Summary

This extension can be used to add an item to the user preferences group on the console user preferences page.

Properties

NameValue TypeOptionalDescription
idstringnoID used to identify the user preference item and referenced in insertAfter and insertBefore to define the item order.
groupIdstringnoIDs used to identify the user preference groups the item would belong to.
labelstringnoThe label of the user preference.
descriptionstringnoThe description of the user preference.
fieldUserPreferenceFieldnoThe input field options used to render the values to set the user preference.
insertBeforestringyesID of user preference item before which this item should be placed.
insertAfterstringyesID of user preference item after which this item should be placed.

console.yaml-template

Summary

YAML templates for editing resources via the yaml editor.

Properties

NameValue TypeOptionalDescription
modelExtensionK8sModelnoModel associated with the template.
templateCodeRef<string>noThe YAML template.
namestringnoThe name of the template. Use the name default to mark this as the default template.

dev-console.add/action

Summary

This extension allows plugins to contribute an add action item to the add page of developer perspective.
For example, a Serverless plugin can add a new action item for adding serverless functions
to the add page of developer console.

Properties

NameValue TypeOptionalDescription
idstringnoID used to identify the action.
labelstringnoThe label of the action
descriptionstringnoThe description of the action.
groupIdstringyesIDs used to identify the action groups the action would belong to.
hrefstringyesThe href to navigate to.
callbackCodeRef<(props: Record<string, any>) => void>yesA callback that performs an action on click
iconCodeRef<ReactNode>yesThe perspective display icon. If possible, use a PatternFly icon for consistent icon colours and styling.
accessReviewAccessReviewResourceAttributes[]yesOptional access review to control visibility / enablement of the action.

dev-console.add/action-group

Summary

This extension allows plugins to contibute a group in the add page of developer console.
Groups can be referenced by actions, which will be grouped together in the add action page based on their extension definition.
For example, a Serverless plugin can contribute a Serverless group and together with multiple add actions.

Properties

NameValue TypeOptionalDescription
idstringnoID used to identify the action group.
namestringnoThe title of the action group
insertBeforestringyesID of action group before which this group should be placed
insertAfterstringyesID of action group after which this group should be placed
iconstring | CodeRef<ReactNode>yesThe perspective display icon.

dev-console.import/environment

Summary

This extension can be used to specify extra build environment variable fields under the builder image selector
in the dev console git import form. When set, the fields will override environment variables
of the same name in the build section.

Properties

NameValue TypeOptionalDescription
imageStreamNamestringnoName of the image stream to provide custom environment variables for
imageStreamTagsstring[]noList of supported image stream tags
environmentsImageEnvironment[]noList of environment variables