7.4. Exemple de plugin dynamique
Avant de suivre l'exemple, vérifiez que le plugin fonctionne en suivant les étapes du développement dynamique du plugin
7.4.1. Ajout d'un onglet à la page des pods
Il existe différentes personnalisations que vous pouvez apporter à la console web d'OpenShift Container Platform. La procédure suivante ajoute un onglet à la page Pod details en tant qu'exemple d'extension de votre plugin.
La console web d'OpenShift Container Platform s'exécute dans un conteneur connecté au cluster auquel vous vous êtes connecté. Voir "Dynamic plugin development" pour des informations permettant de tester le plugin avant de créer le vôtre.
Procédure
Visitez le dépôt
console-plugin-template
qui contient un modèle pour créer des plugins dans un nouvel onglet.ImportantLe code des plugins personnalisés n'est pas pris en charge par Red Hat. Seul le support de la communauté Cooperative est disponible pour votre plugin.
- Sélectionnez le bouton déroulant Use this template et sélectionnez Create new repository dans la liste déroulante pour créer un dépôt GitHub.
- Renommez le nouveau dépôt avec le nom de votre plugin.
- Clonez votre dépôt copié sur votre machine locale afin de pouvoir éditer le code.
Modifiez les métadonnées du plugin dans la déclaration
consolePlugin
depackage.json
."consolePlugin": { "name": "my-plugin", 1 "version": "0.0.1", 2 "displayName": "My Plugin", 3 "description": "Enjoy this shiny, new console plugin!", 4 "exposedModules": { "ExamplePage": "./components/ExamplePage" }, "dependencies": { "@console/pluginAPI": "/*" } }
Ajoutez ce qui suit au fichier
console-extensions.json
:{ "type": "console.tab/horizontalNav", "properties": { "page": { "name": "Example Tab", "href": "example" }, "model": { "group": "core", "version": "v1", "kind": "Pod" }, "component": { "$codeRef": "ExampleTab" } } }
Modifiez le fichier
package.json
pour y inclure les changements suivants :"exposedModules": { "ExamplePage": "./components/ExamplePage", "ExampleTab": "./components/ExampleTab" }
Écrivez un message à afficher dans un nouvel onglet personnalisé sur la page Pods en créant un nouveau fichier
src/components/ExampleTab.tsx
et en y ajoutant le script suivant :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> ); }
Vérification
- Visitez une page Pod pour voir l'onglet ajouté.