7.2. Opérateur SDK CLI référence
L’interface de ligne de commande de l’opérateur SDK (CLI) est un kit de développement conçu pour faciliter l’écriture des opérateurs.
La version prise en charge par Red Hat de l’outil Operator SDK CLI, y compris les outils d’échafaudage et de test connexes pour les projets Opérateur, est dépréciée et devrait être supprimée dans une future version de Red Hat OpenShift Service sur AWS. Le Red Hat fournira des corrections de bogues et une prise en charge de cette fonctionnalité pendant le cycle de vie de la version actuelle, mais cette fonctionnalité ne recevra plus d’améliorations et sera supprimée du futur service Red Hat OpenShift sur les versions AWS.
La version prise en charge par Red Hat du SDK de l’opérateur n’est pas recommandée pour la création de nouveaux projets d’opérateur. Les auteurs d’opérateurs avec des projets d’opérateur existants peuvent utiliser la version de l’outil Operator SDK CLI publié avec Red Hat OpenShift Service sur AWS 4 pour maintenir leurs projets et créer des versions d’opérateur ciblant de nouvelles versions de Red Hat OpenShift Service sur AWS.
Les images de base suivantes pour les projets d’opérateur ne sont pas dépréciées. Les fonctionnalités d’exécution et les API de configuration de ces images de base sont toujours prises en charge pour les corrections de bogues et pour l’adressage des CVE.
- L’image de base pour les projets d’opérateurs basés sur Ansible
- L’image de base pour les projets d’opérateur basé sur Helm
Afin d’obtenir de l’information sur la version non prise en charge et gérée par la communauté du SDK de l’opérateur, voir Operator SDK (Operator Framework).
L’opérateur SDK CLI syntaxe
operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
7.2.1. le paquet Copier lienLien copié sur presse-papiers!
La commande Operator-sdk bundle gère les métadonnées du bundle Operator.
7.2.1.1. de valider Copier lienLien copié sur presse-papiers!
Le bundle valide la sous-commande valide un bundle d’opérateur.
Drapeau | Description |
---|---|
-h, --aide | La sortie d’aide pour le paquet valider la sous-commande. |
--index-builder (chaîne) | Outil pour tirer et déballer des images groupées. Il n’est utilisé que lors de la validation d’une image de paquet. Les options disponibles sont docker, qui est par défaut, podman, ou aucune. |
| Liste de tous les validateurs optionnels disponibles. Lorsqu’il est défini, aucun validateur n’est exécuté. |
--sélectionner-optionnel (chaîne) | Le sélecteur d’étiquette pour sélectionner les validateurs optionnels à exécuter. Lorsque vous exécutez avec le drapeau --list-optional, liste les validateurs optionnels disponibles. |
7.2.2. le nettoyage Copier lienLien copié sur presse-papiers!
La commande de nettoyage de l’opérateur-sdk détruit et supprime les ressources qui ont été créées pour un opérateur qui a été déployé avec la commande run.
Drapeau | Description |
---|---|
-h, --aide | Aide à la sortie pour la sous-commande du paquet d’exécution. |
--kubeconfig (chaîne) | Chemin vers le fichier kubeconfig à utiliser pour les requêtes CLI. |
-n, --namespace (chaîne) | Le cas échéant, l’espace de noms dans lequel exécuter la demande CLI. |
| Il est temps d’attendre que la commande soit terminée avant d’échouer. La valeur par défaut est 2m0s. |
7.2.3. achèvement des travaux Copier lienLien copié sur presse-papiers!
La commande d’achèvement de l’opérateur-sdk génère des achèvements de shell pour rendre les commandes CLI émettrices plus rapides et plus faciles.
Le sous-commande | Description |
---|---|
| Générez des finitions bash. |
| Générez des finitions zsh. |
Drapeau | Description |
---|---|
| Aide à l’utilisation de sortie. |
À titre d’exemple:
operator-sdk completion bash
$ operator-sdk completion bash
Exemple de sortie
bash completion for operator-sdk -*- shell-script -*- ex: ts=4 sw=4 et filetype=sh
# bash completion for operator-sdk -*- shell-script -*-
...
# ex: ts=4 sw=4 et filetype=sh
7.2.4. créer Copier lienLien copié sur presse-papiers!
La commande operator-sdk create est utilisée pour créer, ou échafauder, une API Kubernetes.
7.2.4.1. API Copier lienLien copié sur presse-papiers!
La création de sous-commandes api échafaude une API Kubernetes. La sous-commande doit être exécutée dans un projet initialisé avec la commande init.
Drapeau | Description |
---|---|
-h, --aide | Aide à la sortie pour la sous-commande du paquet d’exécution. |
7.2.5. générer Copier lienLien copié sur presse-papiers!
La commande operator-sdk génère un générateur spécifique pour générer du code ou des manifestes.
7.2.5.1. le paquet Copier lienLien copié sur presse-papiers!
La sous-commande de groupe génératrice génère un ensemble de manifestes de paquets, de métadonnées et d’un fichier bundle.Dockerfile pour votre projet Opérateur.
En règle générale, vous exécutez la commande génératrice kustomize manifeste d’abord la sous-commande pour générer les bases Kustomize d’entrée qui sont utilisées par la sous-commande de paquets génératrices. Cependant, vous pouvez utiliser la commande make bundle dans un projet initialisé pour automatiser l’exécution de ces commandes en séquence.
Drapeau | Description |
---|---|
--canaux (chaîne) | Liste séparée par virgule des canaux auxquels appartient le paquet. La valeur par défaut est alpha. |
--CRDS-dir (chaîne) | Le répertoire root pour CustomResoureDefinition se manifeste. |
--par défaut-canal (chaîne) | Le canal par défaut pour le paquet. |
--déploiement-dir (string) | Le répertoire racine pour les manifestes de l’opérateur, tels que les déploiements et RBAC. Ce répertoire est différent du répertoire passé au drapeau --input-dir. |
-h, --aide | Aide pour générer des paquets |
--input-dir (chaîne) | Annuaire à partir duquel lire un paquet existant. Ce répertoire est le parent de votre répertoire de manifestes de paquets et est différent du répertoire --deploy-dir. |
--kustomize-dir (string) | Répertoire contenant des bases Kustomize et un fichier kustomization.yaml pour les manifestes de paquets. Le chemin par défaut est config/manifestes. |
| Générez des manifestes de paquets. |
| Générez des métadonnées groupées et Dockerfile. |
--sortie-dir (chaîne) | Annuaire pour écrire le paquet vers. |
| Écrasez les métadonnées du bundle et Dockerfile s’ils existent. La valeur par défaut est true. |
--emballage (chaîne) | Le nom du paquet pour le paquet. |
-Q, --quiet | Exécutez en mode silencieux. |
| Ecrire le paquet manifeste pour standardiser. |
--version (chaîne) | La version sémantique de l’opérateur dans le paquet généré. Défini uniquement lors de la création d’un nouveau paquet ou de la mise à niveau de l’opérateur. |
7.2.5.2. kustomize Copier lienLien copié sur presse-papiers!
La sous-commande génératrice kustomize contient des sous-commandes qui génèrent des données Kustomize pour l’opérateur.
7.2.5.2.1. les manifestes Copier lienLien copié sur presse-papiers!
La sous-commande génératrice kustomize manifeste génère ou régénère les bases Kustomize et un fichier kustomization.yaml dans le répertoire config/manifests, qui sont utilisés pour construire des manifestes de paquets par d’autres commandes SDK de l’opérateur. Cette commande demande interactivement des métadonnées UI, un composant important des bases manifestes, par défaut, sauf si une base existe déjà ou si vous définissez l’indicateur --interactive=false.
Drapeau | Description |
---|---|
--APIs-dir (chaîne) | Répertoire racine pour les définitions de type API. |
-h, --aide | Aide pour générer des manifestes de kustomize. |
--input-dir (chaîne) | Répertoire contenant les fichiers Kustomize existants. |
| Lorsqu’il est défini sur false, si aucune base Kustomize n’existe, une invite de commande interactive est présentée pour accepter les métadonnées personnalisées. |
--sortie-dir (chaîne) | Annuaire où écrire des fichiers Kustomize. |
--emballage (chaîne) | Le nom du paquet. |
-Q, --quiet | Exécutez en mode silencieux. |
7.2.6. init Copier lienLien copié sur presse-papiers!
La commande operator-sdk init initialise un projet Opérateur et génère, ou des échafaudages, une mise en page de répertoire de projet par défaut pour le plugin donné.
Cette commande écrit les fichiers suivants:
- Fichier de licence de hotplate
- Fichier PROJET avec le domaine et le référentiel
- Makefile pour construire le projet
- fichier Go.mod avec dépendances de projet
- fichier kustomization.yaml pour la personnalisation des manifestes
- Fichier correcteur pour personnaliser les images pour les manifestes du gestionnaire
- Fichier de correction pour activer les métriques Prometheus
- fichier Main.go à exécuter
Drapeau | Description |
---|---|
| Aide à la sortie pour la commande init. |
--plugins (chaîne) | Le nom et la version optionnelle du plugin pour initialiser le projet avec. Les plugins disponibles sont ansible.sdk.operatorframework.io/v1, go.kubebuilder.io/v2, go.kubebuilder.io/v3, et helm.sdk.operatorframework.io/v1. |
| La version du projet. Les valeurs disponibles sont 2 et 3-alpha, qui est la valeur par défaut. |
7.2.7. courir Copier lienLien copié sur presse-papiers!
La commande operator-sdk run fournit des options qui peuvent lancer l’opérateur dans divers environnements.
7.2.7.1. le paquet Copier lienLien copié sur presse-papiers!
La sous-commande de paquet d’exécution déploie un opérateur dans le format de paquet avec Operator Lifecycle Manager (OLM).
Drapeau | Description |
---|---|
--index-image (chaîne) | Indexer l’image dans laquelle injecter un paquet. L’image par défaut est quay.io/operator-framework/upstream-opm-builder:latest. |
| Installez le mode supporté par la version de service cluster (CSV) de l’opérateur, par exemple AllNamespaces ou SingleNamespace. |
| Installez le délai d’attente. La valeur par défaut est 2m0s. |
--kubeconfig (chaîne) | Chemin vers le fichier kubeconfig à utiliser pour les requêtes CLI. |
-n, --namespace (chaîne) | Le cas échéant, l’espace de noms dans lequel exécuter la demande CLI. |
| Indique le contexte de sécurité à utiliser pour le pod de catalogue. Les valeurs autorisées incluent des restrictions et des héritages. La valeur par défaut est l’héritage. [1] |
-h, --aide | Aide à la sortie pour la sous-commande du paquet d’exécution. |
- Le contexte de sécurité restreint n’est pas compatible avec l’espace de noms par défaut. Afin de configurer l’admission de sécurité de pod de votre opérateur dans votre environnement de production, voir "Complying with Pod security admission". En savoir plus sur l’admission à la sécurité des pods, voir « Comprendre et gérer l’admission à la sécurité des pod ».
7.2.7.2. la mise à niveau de paquet Copier lienLien copié sur presse-papiers!
La sous-commande de mise à niveau de paquets d’exécution met à niveau un opérateur qui a déjà été installé dans le format de paquet avec Operator Lifecycle Manager (OLM).
Drapeau | Description |
---|---|
| Délai de mise à niveau. La valeur par défaut est 2m0s. |
--kubeconfig (chaîne) | Chemin vers le fichier kubeconfig à utiliser pour les requêtes CLI. |
-n, --namespace (chaîne) | Le cas échéant, l’espace de noms dans lequel exécuter la demande CLI. |
| Indique le contexte de sécurité à utiliser pour le pod de catalogue. Les valeurs autorisées incluent des restrictions et des héritages. La valeur par défaut est l’héritage. [1] |
-h, --aide | Aide à la sortie pour la sous-commande du paquet d’exécution. |
- Le contexte de sécurité restreint n’est pas compatible avec l’espace de noms par défaut. Afin de configurer l’admission de sécurité de pod de votre opérateur dans votre environnement de production, voir "Complying with Pod security admission". En savoir plus sur l’admission à la sécurité des pods, voir « Comprendre et gérer l’admission à la sécurité des pod ».
7.2.8. carte de pointage Copier lienLien copié sur presse-papiers!
La commande operator-sdk scorecard exécute l’outil de carte de pointage pour valider un ensemble d’opérateurs et fournir des suggestions d’améliorations. La commande prend un argument, qu’il s’agisse d’une image groupée ou d’un répertoire contenant des manifestes et des métadonnées. Lorsque l’argument contient une balise d’image, l’image doit être présente à distance.
Drapeau | Description |
---|---|
-C, --config (chaîne) | Chemin d’accès au fichier de configuration de la carte de pointage. Le chemin par défaut est bundle/tests/scorecard/config.yaml. |
-h, --aide | Aide à la sortie pour la commande de la carte de pointage. |
--kubeconfig (chaîne) | Chemin d’accès au fichier kubeconfig. |
-L, --liste | Liste des tests disponibles pour exécuter. |
-n, --namespace (chaîne) | Espace de noms dans lequel exécuter les images de test. |
-O, --sortie (chaîne) | Format de sortie pour les résultats. Les valeurs disponibles sont du texte, qui est la valeur par défaut, et json. |
| L’option d’exécuter une carte de score avec le contexte de sécurité spécifié. Les valeurs autorisées incluent des restrictions et des héritages. La valeur par défaut est l’héritage. [1] |
-l, --séléctor (chaîne) | Le sélecteur d’étiquette pour déterminer quels tests sont exécutés. |
-s, --service-compte (string) | Compte de service à utiliser pour les tests. La valeur par défaut est par défaut. |
-x, --skip-nettoyage | Désactiver le nettoyage des ressources après l’exécution des tests. |
-W, --temps d’attente <durée> | Des secondes pour attendre que les tests soient terminés, par exemple 35s. La valeur par défaut est 30s. |
- Le contexte de sécurité restreint n’est pas compatible avec l’espace de noms par défaut. Afin de configurer l’admission de sécurité de pod de votre opérateur dans votre environnement de production, voir "Complying with Pod security admission". En savoir plus sur l’admission à la sécurité des pods, voir « Comprendre et gérer l’admission à la sécurité des pod ».