4.3. Déployez votre plugin sur un cluster
Le plugin peut être déployé dans un cluster dédié OpenShift.
4.3.1. Construire une image avec Docker Copier lienLien copié sur presse-papiers!
Afin de déployer votre plugin sur un cluster, vous devez d’abord construire une image et la pousser vers un registre d’images.
Procédure
Construisez l’image avec la commande suivante:
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 Facultatif: Si vous souhaitez tester votre image, exécutez la commande suivante:
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 Appuyez sur l’image en exécutant la commande suivante:
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
4.3.2. Déployez votre plugin sur un cluster Copier lienLien copié sur presse-papiers!
Après avoir poussé une image avec vos modifications à un registre, vous pouvez déployer le plugin dans un cluster à l’aide d’un graphique Helm.
Conditions préalables
Il faut avoir l’emplacement de l’image contenant le plugin qui a déjà été poussé.
NoteIl est possible de spécifier des paramètres supplémentaires en fonction des besoins de votre plugin. Le fichier value.yaml fournit un ensemble complet de paramètres pris en charge.
Procédure
Afin de déployer votre plugin dans un cluster, installez un graphique Helm avec le nom du plugin comme nom de sortie Helm dans un nouvel espace de noms ou un espace de noms existant tel que spécifié par l’option ligne de commande -n. Fournissez l’emplacement de l’image dans le paramètre plugin.image en utilisant la commande suivante:
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 Là où:
<my-plugin-namespace>
- Indique un espace de noms existant pour déployer votre plugin.
--créer-namespace
- Facultatif: Si vous déployez dans un nouvel espace de noms, utilisez ce paramètre.
--set plugin.image=my-plugin-image-localisation
- Indique l’emplacement de l’image dans le paramètre plugin.image.
NoteEn cas de déploiement sur OpenShift Dedicated 4.10 et ultérieure, il est recommandé d’exclure les configurations liées à la sécurité des pod en ajoutant le paramètre --set plugin.securityContext.enabled=false.
Facultatif : Vous pouvez spécifier tous les paramètres supplémentaires en utilisant l’ensemble de paramètres pris en charge dans le fichier charts/openshift-console-plugin/values.yaml.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
-
Consultez la liste des plugins activés en naviguant depuis Administration
Paramètres du cluster Configuration Console operator.openshift.io plugins Console ou en visitant la page Aperçu.
Il peut prendre quelques minutes pour que la nouvelle configuration du plugin apparaisse. Lorsque vous ne voyez pas votre plugin, vous devrez peut-être actualiser votre navigateur si le plugin a été récemment activé. Lorsque vous recevez des erreurs au moment de l’exécution, consultez la console JS dans les outils de développement du navigateur pour rechercher des erreurs dans votre code de plugin.
4.3.3. Le proxy du service de plugin Copier lienLien copié sur presse-papiers!
Lorsque vous devez faire des requêtes HTTP à un service d’inclusion à partir de votre plugin, vous pouvez déclarer un proxy de service dans sa ressource ConsolePlugin en utilisant le champ de tableau spec.proxy. Le backend de la console expose le /api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?< optional-query-parameters> pour proxy la communication entre le plugin et le service. La requête proxiée utilise un service CA bundle par défaut. Le service doit utiliser HTTPS.
Le plugin doit utiliser l’API consolefetch pour faire des demandes à partir de son code JavaScript ou certaines demandes pourraient échouer. En savoir plus sur "Dynamic plugin API".
À chaque entrée, vous devez spécifier un point de terminaison et un alias du proxy sous les champs endpoint et alias. Dans le cas du type de proxy Service, vous devez définir le champ de type de point d’extrémité sur Service et le service doit inclure des valeurs pour les champs nom, espace de noms et ports. À titre d’exemple, /api/proxy/plugin/helm-charts/ Releases?limit=10 est un chemin de requête proxy à partir du plugin de barre avec un service helm-charts qui répertorie dix versions de helm.
Exemple de proxy de service
- 1
- Alias du proxy.
- 2
- Dans le cas où la demande de proxy de service doit contenir le jeton d’accès OpenShift Dedicated de l’utilisateur connecté, vous devez définir le champ d’autorisation sur UserToken.Note
Lorsque la demande de proxy de service ne contient pas le jeton d’accès OpenShift Dedicated de l’utilisateur connecté, définissez le champ d’autorisation sur None.
- 3
- Dans le cas où le service utilise un service personnalisé CA, le champ caCertificate doit contenir le paquet de certificats.
- 4
- Endpoint du proxy.
4.3.4. Désactivation de votre plugin dans le navigateur Copier lienLien copié sur presse-papiers!
Les utilisateurs de console peuvent utiliser le paramètre de requête de désactivation-plugins pour désactiver les plugins spécifiques ou tous les plugins dynamiques qui seraient normalement chargés au moment de l’exécution.
Procédure
- Désactivez un(s) plugin(s) spécifique(s), supprimez le plugin que vous souhaitez désactiver de la liste des noms de plugins séparés par les virgules.
- Afin de désactiver tous les plugins, laissez une chaîne vide dans le paramètre de requête désactive-plugins.
Les administrateurs de clusters peuvent désactiver les plugins dans la page Paramètres du cluster de la console Web.