5.10. La validation des paquets d’opérateurs


En tant qu’auteur de l’opérateur, vous pouvez exécuter la commande de validation du paquet dans le SDK de l’opérateur pour valider le contenu et le format d’un paquet Opérateur. Il est possible d’exécuter la commande sur une image de faisceau d’opérateur distant ou un répertoire de paquets Opérateur local.

Important

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 d’opérateur, est dépréciée et devrait être supprimée dans une version ultérieure d’OpenShift Dedicated. 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 des futures versions d’OpenShift Dedicated.

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 OpenShift Dedicated 4 pour maintenir leurs projets et créer des versions d’opérateur ciblant des versions plus récentes d’OpenShift Dedicated.

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).

5.10.1. À propos de la commande de validation du paquet

Alors que la commande Operator SDK scorecard peut exécuter des tests sur votre opérateur en fonction d’un fichier de configuration et d’images de test, la sous-commande valide par paquet peut valider les répertoires de paquets locaux et les images de faisceau à distance pour le contenu et la structure.

bundle valider la syntaxe de commande

$ operator-sdk bundle validate <bundle_dir_or_image> <flags>
Copy to Clipboard Toggle word wrap

Note

La commande de validation du paquet s’exécute automatiquement lorsque vous construisez votre paquet à l’aide de la commande make bundle.

Les images groupées sont tirées d’un registre distant et construites localement avant qu’elles ne soient validées. Les répertoires de paquets locaux doivent contenir des métadonnées et des manifestes de l’opérateur. Les métadonnées et les manifestes du bundle doivent avoir une structure similaire à la disposition de paquet suivante:

Exemple de mise en page de paquets

./bundle
  ├── manifests
  │   ├── cache.my.domain_memcacheds.yaml
  │   └── memcached-operator.clusterserviceversion.yaml
  └── metadata
      └── annotations.yaml
Copy to Clipboard Toggle word wrap

Les tests groupés passent la validation et se terminent par un code de sortie de 0 si aucune erreur n’est détectée.

Exemple de sortie

INFO[0000] All validation tests have completed successfully
Copy to Clipboard Toggle word wrap

Les tests échouent à la validation et se terminent par un code de sortie de 1 si des erreurs sont détectées.

Exemple de sortie

ERRO[0000] Error: Value cache.example.com/v1alpha1, Kind=Memcached: CRD "cache.example.com/v1alpha1, Kind=Memcached" is present in bundle "" but not defined in CSV
Copy to Clipboard Toggle word wrap

Les tests groupés qui entraînent des avertissements peuvent encore passer la validation avec un code de sortie de 0 tant qu’aucune erreur n’est détectée. Les tests échouent uniquement sur les erreurs.

Exemple de sortie

WARN[0000] Warning: Value : (memcached-operator.v0.0.1) annotations not found
INFO[0000] All validation tests have completed successfully
Copy to Clipboard Toggle word wrap

Afin d’obtenir de plus amples informations sur la sous-commande valider le paquet, exécutez:

$ operator-sdk bundle validate -h
Copy to Clipboard Toggle word wrap

5.10.2. Ensemble intégré valider les tests

Le SDK de l’opérateur est livré avec des validateurs prédéfinis disposés en suites. Lorsque vous exécutez la commande de validation du paquet sans spécifier un validateur, le test par défaut s’exécute. Le test par défaut vérifie qu’un paquet respecte les spécifications définies par la communauté Operator Framework. En savoir plus, voir "Bundle Format".

Il est possible d’exécuter des validateurs optionnels pour tester des problèmes tels que la compatibilité OperatorHub ou les API Kubernetes dépréciées. Les validateurs optionnels s’exécutent toujours en plus du test par défaut.

ensemble valider la syntaxe de commande pour les suites de test optionnelles

$ operator-sdk bundle validate <bundle_dir_or_image>
  --select-optional <test_label>
Copy to Clipboard Toggle word wrap

Expand
Tableau 5.22. Validateurs de validateurs de paquets addtionnels
Le nomDescriptionÉtiquette

Cadre de l’opérateur

Ce validateur teste un ensemble d’opérateurs par rapport à l’ensemble des validateurs fournis par le Cadre d’opérateur.

la suite=operatorframework

L’opérateurHub

Ce validateur teste un ensemble d’opérateurs pour la compatibilité avec OperatorHub.

le nom=operatorhub

Bonnes pratiques

Ce validateur vérifie si un groupe d’opérateurs est conforme aux bonnes pratiques définies par le Cadre de l’opérateur. Il vérifie les problèmes, tels qu’une description CRD vide ou des ressources non prises en charge par le gestionnaire de cycle de vie de l’opérateur (OLM).

le nom = bonnes pratiques

5.10.3. Exécution de la commande de validation du paquet

Le validateur par défaut exécute un test chaque fois que vous entrez la commande de validation du paquet. Les validateurs optionnels peuvent être exécutés à l’aide du drapeau --select-optional. Les validateurs optionnels exécutent des tests en plus du test par défaut.

Conditions préalables

  • Le projet d’opérateur généré à l’aide du SDK de l’opérateur

Procédure

  1. Dans le cas où vous souhaitez exécuter le validateur par défaut par rapport à un répertoire de paquets locaux, entrez la commande suivante depuis votre répertoire de projet Opérateur:

    $ operator-sdk bundle validate ./bundle
    Copy to Clipboard Toggle word wrap
  2. Lorsque vous souhaitez exécuter le validateur par défaut contre une image de faisceau d’opérateur distant, entrez la commande suivante:

    $ operator-sdk bundle validate \
      <bundle_registry>/<bundle_image_name>:<tag>
    Copy to Clipboard Toggle word wrap

    là où:

    &lt;bundle_registry&gt;
    Indique le registre où le paquet est hébergé, tel que quay.io/exemple.
    &lt;bundle_image_name&gt;
    Indique le nom de l’image du paquet, tel que l’opérateur memcached.
    &lt;tag&gt;

    Indique la balise de l’image de paquet, telle que v1.38.0.

    Note

    Lorsque vous souhaitez valider une image de groupe Opérateur, vous devez héberger votre image dans un registre à distance. Le SDK de l’opérateur tire l’image et la construit localement avant d’exécuter des tests. La commande de validation du paquet ne prend pas en charge le test d’images de paquets locaux.

  3. Lorsque vous souhaitez exécuter un validateur supplémentaire contre un paquet Opérateur, entrez la commande suivante:

    $ operator-sdk bundle validate \
      <bundle_dir_or_image> \
      --select-optional <test_label>
    Copy to Clipboard Toggle word wrap

    là où:

    &lt;bundle_dir_or_image&gt;
    Indique le répertoire local de paquets ou l’image de paquet distant, tels que ~/projects/memcached ou quay.io/example/memcached-operator:v1.38.0.
    &lt;test_label&gt;

    Indique le nom du validateur que vous souhaitez exécuter, tel que name=good-pratiques.

    Exemple de sortie

    ERRO[0000] Error: Value apiextensions.k8s.io/v1, Kind=CustomResource: unsupported media type registry+v1 for bundle object
    WARN[0000] Warning: Value k8sevent.v0.0.1: owned CRD "k8sevents.k8s.k8sevent.com" has an empty description
    Copy to Clipboard Toggle word wrap

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat