This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.Chapter 7. Dynamic plugins
7.1. Overview of dynamic plugins Copy linkLink copied to clipboard!
7.1.1. About dynamic plugins Copy linkLink copied to clipboard!
A dynamic plugin allows you to add custom pages and other extensions to your interface at runtime. The ConsolePlugin
custom resource registers plugins with the console, and a cluster administrator enables plugins in the console-operator
configuration.
Creating a dynamic plugin is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
7.1.2. Key features Copy linkLink copied to clipboard!
A dynamic plugin allows you to make the following customizations to the OpenShift Container Platform experience:
- Add custom pages.
- Add perspectives beyond administrator and developer.
- Add navigation items.
- Add tabs and actions to resource pages.
7.1.3. General guidelines Copy linkLink copied to clipboard!
When creating your plugin, follow these general guidelines:
-
Node.js
andyarn
are required to build and run your plugin. -
Prefix your CSS class names with your plugin name to avoid collisions. For example,
my-plugin__heading
andmy-plugin_\_icon
. - Maintain a consistent look, feel, and behavior with other console pages.
Follow react-i18next localization guidelines when creating your plugin. You can use the
useTranslation
hook like the one in the following example:conster Header: React.FC = () => { const { t } = useTranslation('plugin__console-demo-plugin'); return <h1>{t('Hello, World!')}</h1>; };
conster Header: React.FC = () => { const { t } = useTranslation('plugin__console-demo-plugin'); return <h1>{t('Hello, World!')}</h1>; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Avoid selectors that could affect markup outside of your plugin’s components, such as element selectors. These are not APIs and are subject to change. Using them might break your plugin.
PatternFly 4 guidelines
When creating your plugin, follow these guidelines for using PatternFly:
- Use PatternFly4 components and PatternFly CSS variables. Core PatternFly components are available through the SDK. Using PatternFly components and variables help your plugin look consistent in future console versions.
- Make your plugin accessible by following PatternFly’s accessibility fundamentals.
- Avoid using other CSS libraries such as Bootstrap or Tailwind. They can conflict with PatternFly and will not match the console look and feel.
7.2. Getting started with dynamic plugins Copy linkLink copied to clipboard!
To get started using the dynamic plugin, you must set up your environment to write a new OpenShift Container Platform dynamic plugin. For an example of how to write a new plugin, see Adding a tab to the pods page.
7.2.1. Dynamic plugin development Copy linkLink copied to clipboard!
You can run the plugin using a local development environment. The OpenShift Container Platform web console runs in a container connected to the cluster you have logged into.
Prerequisites
Procedure
In your terminal, run the following command to install the dependencies for your plugin using Yarn.
yarn install
$ yarn install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow After installing, run the following command to start Yarn.
yarn run start
$ yarn run start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow In another terminal window, login to the OpenShift Container Platform through the CLI.
oc login
$ oc login
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the OpenShift Container Platform web console in a container connected to the cluster you have logged into by running the following command:
yarn run start-console
$ yarn run start-console
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
-
Visit localhost:9000 to view the running plugin. Inspect the value of
window.SERVER_FLAGS.consolePlugins
to see the list of plugins that load at runtime.
7.3. Deploy your plugin on a cluster Copy linkLink copied to clipboard!
You can deploy the plugin to a OpenShift Container Platform cluster.
7.3.1. Build an image with Docker Copy linkLink copied to clipboard!
To deploy your plugin on a cluster, you need to build an image and push it to an image registry.
Procedure
Build the image with the following command:
docker build -t quay.io/my-repositroy/my-plugin:latest .
$ docker build -t quay.io/my-repositroy/my-plugin:latest .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: If you want to test your image, run the following command:
docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
$ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Push the image by running the following command:
docker push quay.io/my-repository/my-plugin:latest
$ docker push quay.io/my-repository/my-plugin:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.2. Deploy your plugin on a cluster Copy linkLink copied to clipboard!
After pushing an image with your changes to a registry, you can deploy the plugin to a cluster.
Procedure
Install a Helm chart with the name of the plugin as the Helm release name into a new namespace or an existing namespace as specified by the
-n
command-line option. Provide the location of the image within theplugin.image
parameter by using the following command:helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
$ helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Where:
n <my-plugin-namespace>
- Specifies an existing namespace to deploy your plugin into.
--create-namespace
- Optional: If deploying to a new namespace, use this parameter.
--set plugin.image=my-plugin-image-location
-
Specifies the location of the image within the
plugin.image
parameter.
-
Optional: You can specify any additional parameters by using the set of supported parameters in the
charts/openshift-console-plugin/values.yaml
file.
Verification
You can see the list of the enabled plugins on the Overview page or by navigating from Administration operator.openshift.io
It can take a few minutes for the new plugin configuration to appear. If you do not see your plugin, you might need to refresh your browser if the plugin was recently enabled. If you receive any errors at runtime, check the JS console in browser developer tools to look for any errors in your plugin code.
7.3.3. Disabling your plugin in the browser Copy linkLink copied to clipboard!
Console users can use the disable-plugins
query parameter to disable specific or all dynamic plugins that would normally get loaded at run-time.
Procedure
- To disable a specific plugin(s), remove the plugin you want to disable from the comma-separated list of plugin names.
-
To disable all plugins, leave an empty string in the
disable-plugins
query parameter.
Cluster administrators can disable plugins in the Cluster Settings page of the web console
7.4. Dynamic plugin example Copy linkLink copied to clipboard!
Before working through the example, verify that the plugin is working by following the steps in Dynamic plugin development.
7.4.1. Adding a tab to the pods page Copy linkLink copied to clipboard!
There are different customizations you can make to the OpenShift Container Platform web console. Set up your environment to write a new OpenShift Console dynamic plugin, and add a tab to the Pod details page as an example extension to your plugin.
The OpenShift Container Platform web console runs in a container connected to the cluster you have logged into. See "Dynamic plugin development" for information to test the plugin before creating your own.
Procedure
In a new tab, open the
console-plugin-template
repository, which contains a template for creating plugins in a new tab.ImportantCustom plugin code is not supported by Red Hat. Only Cooperative community support is available for your plugin.
-
Create a GitHub repository for the template by clicking Use this template
Create new repository. - Rename the new repository with the name of your plugin.
- Clone the new repository to your local machine so you can edit the code.
Edit the
package.json
file by adding your plugin’s metadata to theconsolePlugin
declaration. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Add the following to the
console-extensions.json
file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
package.json
file to include the following changes:"exposedModules": { "ExamplePage": "./components/ExamplePage", "ExampleTab": "./components/ExampleTab" }
"exposedModules": { "ExamplePage": "./components/ExamplePage", "ExampleTab": "./components/ExampleTab" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Write a message to display on a new custom tab on the Pods page by creating a new file
src/components/ExampleTab.tsx
and adding the following script:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Install a Helm chart with the name of the plugin as the Helm release name into a new namespace or an existing namespace as specified by the
-n
command-line option and provide the location of the image within theplugin.image
parameter to deploy your plugin on a cluster by using the following command:helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
$ helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteFor more information on deploying your plugin on a cluster, see "Deploy your plugin on a cluster".
Verification
- Visit the Pod page to view the added tab.
7.5. Dynamic plugin reference Copy linkLink copied to clipboard!
You can add extensions that allow you to customize your plugin. Those extensions are then loaded to the console at runtime.
7.5.1. Dynamic plugin extension types Copy linkLink copied to clipboard!
7.5.1.1. console.action/filter Copy linkLink copied to clipboard!
7.5.1.1.1. Summary Copy linkLink copied to clipboard!
ActionFilter
can be used to filter an action.
7.5.1.1.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
The context ID helps to narrow the scope of contributed actions to a particular area of the application. Examples include |
|
| no |
A function that will filter actions based on some conditions. |
7.5.1.2. console.action/group Copy linkLink copied to clipboard!
7.5.1.2.1. Summary Copy linkLink copied to clipboard!
ActionGroup
contributes an action group that can also be a submenu.
7.5.1.2.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | ID used to identify the action section. |
|
| yes | The label to display in the UI. Required for submenus. |
|
| yes | Whether this group should be displayed as submenu. |
|
| yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. |
|
| yes |
Insert this item after the item referenced here. For arrays, the first one found in order is used. The |
7.5.1.3. console.action/provider Copy linkLink copied to clipboard!
7.5.1.3.1. Summary Copy linkLink copied to clipboard!
ActionProvider
contributes a hook that returns list of actions for specific context.
7.5.1.3.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
The context ID helps to narrow the scope of contributed actions to a particular area of the application. Examples include |
|
| no |
A React hook that returns actions for the given scope. If |
7.5.1.4. console.action/resource-provider Copy linkLink copied to clipboard!
7.5.1.4.1. Summary Copy linkLink copied to clipboard!
ResourceActionProvider
contributes a hook that returns list of actions for specific resource model.
7.5.1.4.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The model for which this provider provides actions for. |
|
| no | A react hook which returns actions for the given resource model |
7.5.1.5. console.alert-action Copy linkLink copied to clipboard!
7.5.1.5.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.5.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | |
|
| no | |
|
| no |
7.5.1.6. console.catalog/item-filter Copy linkLink copied to clipboard!
7.5.1.6.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.6.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The unique identifier for the catalog this provider contributes to. |
|
| no | Type ID for the catalog item type. |
|
| no |
Filters items of a specific type. Value is a function that takes |
7.5.1.7. console.catalog/item-metadata Copy linkLink copied to clipboard!
7.5.1.7.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.7.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The unique identifier for the catalog this provider contributes to. |
|
| no | Type ID for the catalog item type. |
|
| no | A hook which returns a function that will be used to provide metadata to catalog items of a specific type. |
7.5.1.8. console.catalog/item-provider Copy linkLink copied to clipboard!
7.5.1.8.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.8.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The unique identifier for the catalog this provider contributes to. |
|
| no | Type ID for the catalog item type. |
|
| no | Title for the catalog item provider |
|
| no | Fetch items and normalize it for the catalog. Value is a react effect hook. |
|
| yes |
Priority for this provider. Defaults to |
7.5.1.9. console.catalog/item-type Copy linkLink copied to clipboard!
7.5.1.9.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.9.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Type for the catalog item. |
|
| no | Title for the catalog item. |
|
| yes | Description for the type specific catalog. |
|
| yes | Description for the catalog item type. |
|
| yes | Custom filters specific to the catalog item. |
|
| yes | Custom groupings specific to the catalog item. |
7.5.1.10. console.catalog/item-type-metadata Copy linkLink copied to clipboard!
7.5.1.10.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.10.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Type for the catalog item. |
|
| yes | Custom filters specific to the catalog item. |
|
| yes | Custom groupings specific to the catalog item. |
7.5.1.11. console.cluster-overview/inventory-item Copy linkLink copied to clipboard!
7.5.1.11.1. Summary Copy linkLink copied to clipboard!
Adds a new inventory item into cluster overview page.
7.5.1.11.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The component to be rendered. |
7.5.1.12. console.cluster-overview/multiline-utilization-item Copy linkLink copied to clipboard!
7.5.1.12.1. Summary Copy linkLink copied to clipboard!
Adds a new cluster overview multi-line utilization item.
7.5.1.12.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The title of the utilization item. |
|
| no | Prometheus utilization query. |
|
| no | Convert Prometheus data to human-readable form. |
|
| yes | Shows Top consumer popover instead of plain value |
7.5.1.13. console.cluster-overview/utilization-item Copy linkLink copied to clipboard!
7.5.1.13.1. Summary Copy linkLink copied to clipboard!
Adds a new cluster overview utilization item.
7.5.1.13.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The title of the utilization item. |
|
| no | Prometheus utilization query. |
|
| no | Convert Prometheus data to human-readable form. |
|
| yes | Prometheus total query. |
|
| yes | Prometheus request query. |
|
| yes | Prometheus limit query. |
|
| yes | Shows Top consumer popover instead of plain value |
7.5.1.14. console.context-provider Copy linkLink copied to clipboard!
7.5.1.14.1. Summary Copy linkLink copied to clipboard!
Adds a new React context provider to the web console application root.
7.5.1.14.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Context Provider component. |
|
| no | Hook for the Context value. |
7.5.1.15. console.dashboards/card Copy linkLink copied to clipboard!
7.5.1.15.1. Summary Copy linkLink copied to clipboard!
Adds a new dashboard card.
7.5.1.15.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The ID of the dashboard tab to which the card will be added. |
|
| no | The grid position of the card on the dashboard. |
|
| no | Dashboard card component. |
|
| yes |
Card’s vertical span in the column. Ignored for small screens; defaults to |
7.5.1.16. console.dashboards/overview/activity/resource Copy linkLink copied to clipboard!
7.5.1.16.1. Summary Copy linkLink copied to clipboard!
Adds an activity to the Activity Card of Overview Dashboard where the triggering of activity is based on watching a Kubernetes resource.
7.5.1.16.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The utilization item to be replaced. |
|
| no | The action component. |
|
| yes | Function which determines if the given resource represents the action. If not defined, every resource represents activity. |
|
| yes | Time stamp for the given action, which will be used for ordering. |
7.5.1.17. console.dashboards/overview/detail/item Copy linkLink copied to clipboard!
7.5.1.17.1. Summary Copy linkLink copied to clipboard!
Adds an item to the Details card of Overview dashboard
7.5.1.17.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
The value, based on the |
7.5.1.18. console.dashboards/overview/health/operator Copy linkLink copied to clipboard!
7.5.1.18.1. Summary Copy linkLink copied to clipboard!
Adds a health subsystem to the status card of the Overview dashboard, where the source of status is a Kubernetes REST API.
7.5.1.18.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Title of Operators section in the pop-up menu. |
|
| no |
Kubernetes resources which will be fetched and passed to |
|
| yes | Resolves status for the Operators. |
|
| yes | Loader for pop-up row component. |
|
| yes | Links to all resources page. If not provided, then a list page of the first resource from resources prop is used. |
7.5.1.19. console.dashboards/overview/health/prometheus Copy linkLink copied to clipboard!
7.5.1.19.1. Summary Copy linkLink copied to clipboard!
Adds a health subsystem to the status card of Overview dashboard where the source of status is Prometheus.
7.5.1.19.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The display name of the subsystem. |
|
| no | The Prometheus queries |
|
| no | Resolve the subsystem’s health. |
|
| yes |
Additional resource which will be fetched and passed to |
|
| yes | Loader for pop-up menu content. If defined, a health item is represented as a link, which opens a pop-up menu with the given content. |
|
| yes | The title of the popover. |
|
| yes | Control plane topology for which the subsystem should be hidden. |
7.5.1.20. console.dashboards/overview/health/resource Copy linkLink copied to clipboard!
7.5.1.20.1. Summary Copy linkLink copied to clipboard!
Adds a health subsystem to the status card of Overview dashboard where the source of status is a Kubernetes Resource.
7.5.1.20.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The display name of the subsystem. |
|
| no |
Kubernetes resources that will be fetched and passed to |
|
| no | Resolve the subsystem’s health. |
|
| yes | Loader for pop-up menu content. If defined, a health item is represented as a link, which opens a pop-up menu with the given content. |
|
| yes | The title of the popover. |
7.5.1.21. console.dashboards/overview/health/url Copy linkLink copied to clipboard!
7.5.1.21.1. Summary Copy linkLink copied to clipboard!
Adds a health subsystem to the status card of Overview dashboard where the source of status is a Kubernetes REST API.
7.5.1.21.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The display name of the subsystem. |
|
| no | The URL to fetch data from. It will be prefixed with base Kubernetes URL. |
| `CodeRef<URLHealthHandler<T, K8sResourceCommon | K8sResourceCommon[]>>` | no |
Resolve the subsystem’s health. |
|
| yes |
Additional resource which will be fetched and passed to |
|
| yes |
Loader for popup content. If defined, a health item will be represented as a link which opens popup with given content. |
|
| yes |
7.5.1.22. console.dashboards/overview/inventory/item Copy linkLink copied to clipboard!
7.5.1.22.1. Summary Copy linkLink copied to clipboard!
Adds a resource tile to the overview inventory card.
7.5.1.22.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
The model for |
|
| yes | Function which maps various statuses to groups. |
|
| yes |
Additional resources which will be fetched and passed to the |
7.5.1.23. console.dashboards/overview/inventory/item/group Copy linkLink copied to clipboard!
7.5.1.23.1. Summary Copy linkLink copied to clipboard!
Adds an inventory status group.
7.5.1.23.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The id of the status group. |
|
| no | React component representing the status group icon. |
7.5.1.24. console.dashboards/overview/inventory/item/replacement Copy linkLink copied to clipboard!
7.5.1.24.1. Summary Copy linkLink copied to clipboard!
Replaces an overview inventory card.
7.5.1.24.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
The model for |
|
| yes | Function which maps various statuses to groups. |
|
| yes |
Additional resources which will be fetched and passed to the |
7.5.1.25. console.dashboards/overview/prometheus/activity/resource Copy linkLink copied to clipboard!
7.5.1.25.1. Summary Copy linkLink copied to clipboard!
Adds an activity to the Activity Card of Prometheus Overview Dashboard where the triggering of activity is based on watching a Kubernetes resource.
7.5.1.25.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Queries to watch |
|
| no | The action component. |
|
| yes | Function which determines if the given resource represents the action. If not defined, every resource represents activity. |
7.5.1.26. console.dashboards/project/overview/item Copy linkLink copied to clipboard!
7.5.1.26.1. Summary Copy linkLink copied to clipboard!
Adds a resource tile to the project overview inventory card.
7.5.1.26.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
The model for |
|
| yes | Function which maps various statuses to groups. |
|
| yes |
Additional resources which will be fetched and passed to the |
7.5.1.27. console.dashboards/tab Copy linkLink copied to clipboard!
7.5.1.27.1. Summary Copy linkLink copied to clipboard!
Adds a new dashboard tab, placed after the Overview tab.
7.5.1.27.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
A unique tab identifier, used as tab link |
|
| no | Navigation section to which the tab belongs to. |
|
| no | The title of the tab. |
7.5.1.28. console.file-upload Copy linkLink copied to clipboard!
7.5.1.28.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.28.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Supported file extensions. |
|
| no | Function which handles the file drop action. |
7.5.1.29. console.flag Copy linkLink copied to clipboard!
7.5.1.29.1. Summary Copy linkLink copied to clipboard!
Gives full control over the web console feature flags.
7.5.1.29.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Used to set or unset arbitrary feature flags. |
7.5.1.30. console.flag/hookProvider Copy linkLink copied to clipboard!
7.5.1.30.1. Summary Copy linkLink copied to clipboard!
Gives full control over the web console feature flags with hook handlers.
7.5.1.30.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Used to set or unset arbitrary feature flags. |
7.5.1.31. console.flag/model Copy linkLink copied to clipboard!
7.5.1.31.1. Summary Copy linkLink copied to clipboard!
Adds a new web console feature flag driven by the presence of a CRD on the cluster.
7.5.1.31.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The name of the flag to set once the CRD is detected. |
|
| no |
The model which refers to a |
7.5.1.32. console.global-config Copy linkLink copied to clipboard!
7.5.1.32.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.32.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Unique identifier for the cluster config resource instance. |
|
| no | The name of the cluster config resource instance. |
|
| no | The model which refers to a cluster config resource. |
|
| no | The namespace of the cluster config resource instance. |
7.5.1.33. console.model-metadata Copy linkLink copied to clipboard!
7.5.1.33.1. Summary Copy linkLink copied to clipboard!
Customize the display of models by overriding values retrieved and generated through API discovery.
7.5.1.33.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The model to customize. May specify only a group, or optional version and kind. |
|
| yes | Whether to consider this model reference as Technology Preview or Developer Preview. |
|
| yes | The color to associate to this model. |
|
| yes |
Override the label. Requires |
|
| yes |
Override the plural label. Requires |
|
| yes |
Customize the abbreviation. Defaults to all uppercase characters in |
7.5.1.39. console.page/resource/details Copy linkLink copied to clipboard!
7.5.1.39.1. Summary Copy linkLink copied to clipboard!
Adds a new resource details page to the web console router.
7.5.1.39.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The model for which this resource page links to. |
|
| no | The component to be rendered when the route matches. |
7.5.1.40. console.page/resource/list Copy linkLink copied to clipboard!
7.5.1.40.1. Summary Copy linkLink copied to clipboard!
Adds new resource list page to Console router.
7.5.1.40.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The model for which this resource page links to. |
|
| no | The component to be rendered when the route matches. |
7.5.1.41. console.page/route Copy linkLink copied to clipboard!
7.5.1.41.1. Summary Copy linkLink copied to clipboard!
Adds a new page to the web console router. See React Router.
7.5.1.41.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The component to be rendered when the route matches. |
|
| no |
Valid URL path or array of paths that |
|
| yes | The perspective to which this page belongs to. If not specified, contributes to all perspectives. |
|
| yes |
When true, will only match if the path matches the |
7.5.1.42. console.page/route/standalone Copy linkLink copied to clipboard!
7.5.1.42.1. Summary Copy linkLink copied to clipboard!
Adds a new standalone page, rendered outside the common page layout, to the web console router. See React Router.
7.5.1.42.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The component to be rendered when the route matches. |
|
| no |
Valid URL path or array of paths that |
|
| yes |
When true, will only match if the path matches the |
7.5.1.43. console.perspective Copy linkLink copied to clipboard!
7.5.1.43.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.43.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The perspective identifier. |
|
| no | The perspective display name. |
|
| no | The perspective display icon. |
|
| no | The function to get perspective landing page URL. |
|
| no | The function to get redirect URL for import flow. |
|
| yes | Whether the perspective is the default. There can only be one default. |
|
| yes | Default pinned resources on the nav |
|
| yes | The hook to detect default perspective |
7.5.1.44. console.project-overview/inventory-item Copy linkLink copied to clipboard!
7.5.1.44.1. Summary Copy linkLink copied to clipboard!
Adds a new inventory item into the Project Overview page.
7.5.1.44.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The component to be rendered. |
7.5.1.45. console.project-overview/utilization-item Copy linkLink copied to clipboard!
7.5.1.45.1. Summary Copy linkLink copied to clipboard!
Adds a new project overview utilization item.
7.5.1.45.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The title of the utilization item. |
|
| no | Prometheus utilization query. |
|
| no | Convert Prometheus data to human-readable form. |
|
| yes | Prometheus total query. |
|
| yes | Prometheus request query. |
|
| yes | Prometheus limit query. |
|
| yes | Shows the top consumer popover instead of plain value. |
7.5.1.46. console.pvc/alert Copy linkLink copied to clipboard!
7.5.1.46.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.46.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The alert component. |
7.5.1.47. console.pvc/create-prop Copy linkLink copied to clipboard!
7.5.1.47.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.47.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Label for the create prop action. |
|
| no | Path for the create prop action. |
7.5.1.48. console.pvc/delete Copy linkLink copied to clipboard!
7.5.1.48.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.48.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Predicate that tells whether to use the extension or not. |
|
| no | Method for the PVC delete operation. |
|
| no | Alert component to show additional information. |
7.5.1.49. console.pvc/status Copy linkLink copied to clipboard!
7.5.1.49.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.49.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Priority for the status component. A larger value means higher priority. |
|
| no | The status component. |
|
| no | Predicate that tells whether to render the status component or not. |
7.5.1.50. console.redux-reducer Copy linkLink copied to clipboard!
7.5.1.50.1. Summary Copy linkLink copied to clipboard!
Adds new reducer to Console Redux store which operates on plugins.<scope>
substate.
7.5.1.50.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The key to represent the reducer-managed substate within the Redux state object. |
|
| no | The reducer function, operating on the reducer-managed substate. |
7.5.1.51. console.resource/create Copy linkLink copied to clipboard!
7.5.1.51.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.51.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The model for which this create resource page will be rendered. |
|
| no | The component to be rendered when the model matches |
7.5.1.52. console.storage-provider Copy linkLink copied to clipboard!
7.5.1.52.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.52.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | |
|
| no |
7.5.1.54. console.telemetry/listener Copy linkLink copied to clipboard!
7.5.1.54.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.54.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Listen for telemetry events |
7.5.1.55. console.topology/adapter/build Copy linkLink copied to clipboard!
7.5.1.55.1. Summary Copy linkLink copied to clipboard!
BuildAdapter
contributes an adapter to adapt element to data that can be used by the Build
component.
7.5.1.55.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
| `CodeRef<(element: GraphElement) ⇒ AdapterDataType<BuildConfigData> | undefined>` | no |
7.5.1.56. console.topology/adapter/network Copy linkLink copied to clipboard!
7.5.1.56.1. Summary Copy linkLink copied to clipboard!
NetworkAdapater
contributes an adapter to adapt element to data that can be used by the Networking
component.
7.5.1.56.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
| `CodeRef<(element: GraphElement) ⇒ NetworkAdapterType | undefined>` | no |
7.5.1.57. console.topology/adapter/pod Copy linkLink copied to clipboard!
7.5.1.57.1. Summary Copy linkLink copied to clipboard!
PodAdapter
contributes an adapter to adapt element to data that can be used by the Pod
component.
7.5.1.57.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
| `CodeRef<(element: GraphElement) ⇒ AdapterDataType<PodsAdapterDataType> | undefined>` | no |
7.5.1.58. console.topology/component/factory Copy linkLink copied to clipboard!
7.5.1.58.1. Summary Copy linkLink copied to clipboard!
Getter for a ViewComponentFactory
.
7.5.1.58.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no |
Getter for a |
7.5.1.59. console.topology/create/connector Copy linkLink copied to clipboard!
7.5.1.59.1. Summary Copy linkLink copied to clipboard!
Getter for the create connector function.
7.5.1.59.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Getter for the create connector function. |
7.5.1.60. console.topology/data/factory Copy linkLink copied to clipboard!
7.5.1.60.1. Summary Copy linkLink copied to clipboard!
Topology Data Model Factory Extension
7.5.1.60.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Unique ID for the factory. |
|
| no | Priority for the factory |
|
| yes | Resources to be fetched from useK8sWatchResources hook. |
|
| yes | Keys in resources containing workloads. |
|
| yes | Getter for the data model factory. |
|
| yes | Getter for function to determine if a resource is depicted by this model factory. |
|
| yes | Getter for function to reconcile data model after all extensions' models have loaded. |
7.5.1.61. console.topology/decorator/provider Copy linkLink copied to clipboard!
7.5.1.61.1. Summary Copy linkLink copied to clipboard!
Topology Decorator Provider Extension
7.5.1.61.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | |
|
| no | |
|
| no | |
|
| no |
7.5.1.62. console.topology/details/resource-alert Copy linkLink copied to clipboard!
7.5.1.62.1. Summary Copy linkLink copied to clipboard!
DetailsResourceAlert
contributes an alert for specific topology context or graph element.
7.5.1.62.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The ID of this alert. Used to save state if the alert should not be shown after dismissed. |
| `CodeRef<(element: GraphElement) ⇒ DetailsResourceAlertContent | null>` | no |
7.5.1.63. console.topology/details/resource-link Copy linkLink copied to clipboard!
7.5.1.63.1. Summary Copy linkLink copied to clipboard!
DetailsResourceLink
contributes a link for specific topology context or graph element.
7.5.1.63.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
| `CodeRef<(element: GraphElement) ⇒ React.Component | undefined>` | no |
Return the resource link if provided, otherwise undefined. Use the |
|
| yes |
7.5.1.64. console.topology/details/tab Copy linkLink copied to clipboard!
7.5.1.64.1. Summary Copy linkLink copied to clipboard!
DetailsTab
contributes a tab for the topology details panel.
7.5.1.64.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | A unique identifier for this details tab. |
|
| no | The tab label to display in the UI. |
|
| yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. |
|
| yes |
Insert this item after the item referenced here. For arrays, the first one found in order is used. The |
7.5.1.65. console.topology/details/tab-section Copy linkLink copied to clipboard!
7.5.1.65.1. Summary Copy linkLink copied to clipboard!
DetailsTabSection
contributes a section for a specific tab in the topology details panel.
7.5.1.65.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | A unique identifier for this details tab section. |
|
| no | The parent tab ID that this section should contribute to. |
|
| no | A hook that returns a component, or if null or undefined renders in the topology sidebar.SDK component: <Section title=\{}>… padded area |
| `CodeRef<(element: GraphElement, renderNull?: () ⇒ null) ⇒ React.Component | undefined>` | no |
@deprecated Fallback if no provider is defined. renderNull is a no-op already. |
|
| yes |
Insert this item before the item referenced here.For arrays, the first one found in order is used. |
|
| yes |
7.5.1.66. console.topology/display/filters Copy linkLink copied to clipboard!
7.5.1.66.1. Summary Copy linkLink copied to clipboard!
Topology Display Filters Extension
7.5.1.66.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | |
|
| no |
7.5.1.67. console.topology/relationship/provider Copy linkLink copied to clipboard!
7.5.1.67.1. Summary Copy linkLink copied to clipboard!
Topology relationship provider connector extension
7.5.1.67.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | |
|
| no | |
|
| no | |
|
| no |
7.5.1.68. console.user-preference/group Copy linkLink copied to clipboard!
7.5.1.68.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.68.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | ID used to identify the user preference group. |
|
| no | The label of the user preference group |
|
| yes | ID of user preference group before which this group should be placed |
|
| yes | ID of user preference group after which this group should be placed |
7.5.1.69. console.user-preference/item Copy linkLink copied to clipboard!
7.5.1.69.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.69.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | ID used to identify the user preference item and referenced in insertAfter and insertBefore to define the item order. |
|
| no | The label of the user preference |
|
| no | The description of the user preference. |
|
| no | The input field options used to render the values to set the user preference. |
|
| yes | IDs used to identify the user preference groups the item would belong to. |
|
| yes | ID of user preference item before which this item should be placed |
|
| yes | ID of user preference item after which this item should be placed |
7.5.1.70. console.yaml-template Copy linkLink copied to clipboard!
7.5.1.70.1. Summary Copy linkLink copied to clipboard!
YAML templates for editing resources via the yaml editor.
7.5.1.70.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Model associated with the template. |
|
| no | The YAML template. |
|
| no |
The name of the template. Use the name |
7.5.1.71. dev-console.add/action Copy linkLink copied to clipboard!
7.5.1.71.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.71.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | ID used to identify the action. |
|
| no | The label of the action |
|
| no | The description of the action. |
|
| no | The href to navigate to. |
|
| yes | IDs used to identify the action groups the action would belong to. |
|
| yes | The perspective display icon. |
|
| yes | Optional access review to control the visibility or enablement of the action. |
7.5.1.72. dev-console.add/action-group Copy linkLink copied to clipboard!
7.5.1.72.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.72.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | ID used to identify the action group. |
|
| no | The title of the action group |
|
| yes | ID of action group before which this group should be placed |
|
| yes | ID of action group after which this group should be placed |
7.5.1.73. dev-console.import/environment Copy linkLink copied to clipboard!
7.5.1.73.1. Summary Copy linkLink copied to clipboard!
(not available)
7.5.1.73.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | Name of the image stream to provide custom environment variables for |
|
| no | List of supported image stream tags |
|
| no | List of environment variables |
7.5.1.74. console.page/resource/tab Copy linkLink copied to clipboard!
7.5.1.74.1. Summary [DEPRECATED] Copy linkLink copied to clipboard!
Deprecated. Use console.tab/horizontalNav
instead. Adds a new resource tab page to Console router.
7.5.1.74.2. Properties Copy linkLink copied to clipboard!
Name | Value Type | Optional | Description |
---|---|---|---|
|
| no | The model for which this resource page links to. |
|
| no | The component to be rendered when the route matches. |
|
| no | The name of the tab. |
|
| yes |
The optional href for the tab link. If not provided, the first |
|
| yes |
When true, will only match if the path matches the |
7.5.2. Troubleshooting your dynamic plugin Copy linkLink copied to clipboard!
Refer to this list of troubleshooting tips if you run into issues loading your plugin.
Verify that you have enabled your plugin in the console Operator configuration and your plugin name is the output by running the following command:
oc get console.operator.openshift.io cluster -o jsonpath='{.spec.plugins}'
$ oc get console.operator.openshift.io cluster -o jsonpath='{.spec.plugins}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Verify the enabled plugins on the status card of the Overview page in the Administrator perspective. You must refresh your browser if the plugin was recently enabled.
Verify your plugin service is healthy by:
- Verifying your plugin pod status is running and your containers are ready.
- Verifying the service label selector matches the pod and the target port is correct.
-
Using the curl command with the
plugin-manifest.json
from the service in a terminal on the console pod or another pod on the cluster.
-
Verify your
ConsolePlugin
resource name (consolePlugin.name
) matches the plugin name used inpackage.json
. -
Verify your service name, namespace, port, and path are declared correctly in the
ConsolePlugin
resource. - Verify your plugin service uses HTTPS and service serving certificates.
- Verify any certificates or connection errors in the console pod logs.
- Verify the feature flag your plugin relies on is not disabled.
Verify your plugin does not have any
consolePlugin.dependencies
inpackage.json
that are not met.- This can include console version dependencies or dependencies on other plugins. Filter the JS console in your browser for your plugin’s name to see messages that are logged.
Verify there are no typographical errors in the navigation extension perspective or section IDs.
- Your plugin might be loaded, but navigation items can be missing if IDs are incorrect. Try navigating to a plugin page directly by editing the URL.
Verify there are no network policies that are blocking traffic from the console pod to your plugin service.
-
If necessary, adjust network policies to allow console pods in the
openshift-console
namespace to make requests to your service.
-
If necessary, adjust network policies to allow console pods in the
Verify the list of dynamic plugins to be loaded in your browser in the Console tab of the developer tools browser.
-
Evaluate
window.SERVER_FLAGS.consolePlugins
to see the dynamic plugin on the Console front end.
-
Evaluate