7.5. Dynamic plugin example
Before working through the example, verify that the plugin is working by following the steps in Dynamic plugin development
7.5.1. Adding a tab to the pods page 링크 복사링크가 클립보드에 복사되었습니다!
There are different customizations you can make to the OpenShift Container Platform web console. The following procedure adds 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
Visit the
console-plugin-templaterepository containing a template for creating plugins in a new tab.중요Custom 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.jsonfile, adding your plugin’s metadata to theconsolePlugindeclaration. For example:"consolePlugin": { "name": "my-plugin", "version": "0.0.1", "displayName": "My Plugin", "description": "Enjoy this shiny, new console plugin!", "exposedModules": { "ExamplePage": "./components/ExamplePage" }, "dependencies": { "@console/pluginAPI": "/*" } }where:
consolePlugin.name.my-plugin- Update the name of your plugin.
consolePlugin.version.0.0.1- Update the version.
consolePlugin.displayName.My Plugin- Update the display name for your plugin.
consolePlugin.description.Enjoy this shiny, new console plugin!- Update the description with a synopsis about your plugin.
Add the following to the
console-extensions.jsonfile:{ "type": "console.tab/horizontalNav", "properties": { "page": { "name": "Example Tab", "href": "example" }, "model": { "group": "core", "version": "v1", "kind": "Pod" }, "component": { "$codeRef": "ExampleTab" } } }Edit the
package.jsonfile to include the following changes:"exposedModules": { "ExamplePage": "./components/ExamplePage", "ExampleTab": "./components/ExampleTab" }Write a message to display on a new custom tab on the Pods page by creating a new file
src/components/ExampleTab.tsxand adding the following script:import * as React from 'react'; export default function ExampleTab() { return ( <p>This is a custom tab added to a resource using a dynamic plugin.</p> ); }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
-ncommand-line option to deploy your plugin on a cluster. Provide the location of the image within theplugin.imageparameter 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참고For more information on deploying your plugin on a cluster, see "Deploy your plugin on a cluster".
Verification
- Visit a Pod page to view the added tab.