5.7. En travaillant avec des images groupées
Il est possible d’utiliser le SDK de l’opérateur pour emballer, déployer et mettre à niveau les Opérateurs dans le format bundle pour les utiliser sur Operator Lifecycle Manager (OLM).
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).
5.7.1. Groupement d’un opérateur Copier lienLien copié sur presse-papiers!
Le format de paquet Opérateur est la méthode d’emballage par défaut pour Operator SDK et Operator Lifecycle Manager (OLM). En utilisant le SDK de l’opérateur, vous pouvez préparer votre opérateur à une utilisation sur OLM pour construire et pousser votre projet Opérateur en tant qu’image groupée.
Conditions préalables
- L’opérateur SDK CLI installé sur un poste de travail de développement
- Installation d’OpenShift CLI (oc) v4+
- Le projet d’opérateur initialisé à l’aide du SDK de l’opérateur
- Dans le cas où votre opérateur est Go-based, votre projet doit être mis à jour pour utiliser les images prises en charge pour s’exécuter sur Red Hat OpenShift Service sur AWS
Procédure
Exécutez les commandes suivantes dans votre répertoire de projet Opérateur pour construire et pousser l’image de votre opérateur. Modifiez l’argument IMG dans les étapes suivantes pour faire référence à un référentiel auquel vous avez accès. Il est possible d’obtenir un compte de stockage des conteneurs sur des sites de dépôt tels que Quay.io.
Construire l’image:
make docker-build IMG=<registry>/<user>/<operator_image_name>:<tag>
$ make docker-build IMG=<registry>/<user>/<operator_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLe Dockerfile généré par le SDK pour l’opérateur renvoie explicitement GOARCH=amd64 pour la construction de go. Cela peut être modifié à GOARCH=$TARGETARCH pour les architectures non-AMD64. Docker définira automatiquement la variable d’environnement à la valeur spécifiée par -platform. Avec Buildah, le -build-arg devra être utilisé à cet effet. En savoir plus, consultez Multiple Architectures.
Appuyez sur l’image vers un référentiel:
make docker-push IMG=<registry>/<user>/<operator_image_name>:<tag>
$ make docker-push IMG=<registry>/<user>/<operator_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créez votre paquet Opérateur manifeste en exécutant la commande make bundle, qui invoque plusieurs commandes, y compris l’opérateur SDK génère des paquets et des sous-commandes validant:
make bundle IMG=<registry>/<user>/<operator_image_name>:<tag>
$ make bundle IMG=<registry>/<user>/<operator_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les manifestes de paquets pour un opérateur décrivent comment afficher, créer et gérer une application. La commande make bundle crée les fichiers et répertoires suivants dans votre projet Opérateur:
- Le bundle manifeste un répertoire nommé bundle/manifests qui contient un objet ClusterServiceVersion
- Annuaire de métadonnées groupé nommé bundle/metadata
- L’ensemble des définitions de ressources personnalisées (CRD) dans un répertoire config/crd
- Dockerfile bundle.Dockerfile
Ces fichiers sont ensuite automatiquement validés en utilisant le bundle opérateur-sdk valide pour s’assurer que la représentation des faisceaux sur disque est correcte.
Créez et poussez votre image de paquet en exécutant les commandes suivantes. L’OLM consomme des faisceaux d’opérateurs à l’aide d’une image d’index, qui référence à une ou plusieurs images groupées.
Construisez l’image du bundle. Définissez BUNDLE_IMG avec les détails du registre, de l’espace de noms d’utilisateur et de la balise d’image où vous avez l’intention de pousser l’image:
make bundle-build BUNDLE_IMG=<registry>/<user>/<bundle_image_name>:<tag>
$ make bundle-build BUNDLE_IMG=<registry>/<user>/<bundle_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image du paquet:
docker push <registry>/<user>/<bundle_image_name>:<tag>
$ docker push <registry>/<user>/<bundle_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.2. Déploiement d’un opérateur avec le gestionnaire du cycle de vie de l’opérateur Copier lienLien copié sur presse-papiers!
Le gestionnaire de cycle de vie de l’opérateur (OLM) vous aide à installer, mettre à jour et gérer le cycle de vie des Opérateurs et de leurs services associés sur un cluster Kubernetes. Le système OLM est installé par défaut sur Red Hat OpenShift Service sur AWS et s’exécute sous forme d’extension Kubernetes afin que vous puissiez utiliser la console Web et OpenShift CLI (oc) pour toutes les fonctions de gestion du cycle de vie de l’opérateur sans outils supplémentaires.
Le format de paquet opérateur est la méthode d’emballage par défaut pour l’opérateur SDK et OLM. Le SDK de l’opérateur permet d’exécuter rapidement une image groupée sur OLM afin de s’assurer qu’elle fonctionne correctement.
Conditions préalables
- L’opérateur SDK CLI installé sur un poste de travail de développement
- Ensemble d’image de l’opérateur construit et poussé à un registre
- Installation OLM sur un cluster basé sur Kubernetes (v1.16.0 ou version ultérieure si vous utilisez apiextensions.k8s.io/v1 CRDs, par exemple Red Hat OpenShift Service sur AWS 4)
- Connexion au cluster avec oc à l’aide d’un compte avec des autorisations d’administration dédiées
- Dans le cas où votre opérateur est Go-based, votre projet doit être mis à jour pour utiliser les images prises en charge pour s’exécuter sur Red Hat OpenShift Service sur AWS
Procédure
Entrez la commande suivante pour exécuter l’opérateur sur le cluster:
operator-sdk run bundle \ -n <namespace> \ <registry>/<user>/<bundle_image_name>:<tag>
$ operator-sdk run bundle \
1 -n <namespace> \
2 <registry>/<user>/<bundle_image_name>:<tag>
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- La commande run bundle crée un catalogue basé sur des fichiers valide et installe le paquet Opérateur sur votre cluster en utilisant OLM.
- 2
- Facultatif: Par défaut, la commande installe l’opérateur dans le projet actuellement actif dans votre fichier ~/.kube/config. Il est possible d’ajouter le drapeau -n pour définir un espace de noms différent pour l’installation.
- 3
- Dans le cas où vous ne spécifiez pas une image, la commande utilise quay.io/operator-framework/opm:latest comme image d’index par défaut. Lorsque vous spécifiez une image, la commande utilise l’image du faisceau lui-même comme image d’index.
ImportantÀ partir de Red Hat OpenShift Service sur AWS 4.11, la commande run bundle prend en charge le format de catalogue basé sur des fichiers pour les catalogues d’opérateurs par défaut. Le format de base de données SQLite obsolète pour les catalogues d’opérateurs continue d’être pris en charge; cependant, il sera supprimé dans une version ultérieure. Il est recommandé aux auteurs de l’opérateur de migrer leurs flux de travail vers le format de catalogue basé sur les fichiers.
Cette commande effectue les actions suivantes:
- Créez une image d’index faisant référence à votre image de paquet. L’image de l’index est opaque et éphémère, mais reflète avec précision comment un paquet serait ajouté à un catalogue en production.
- Créez une source de catalogue qui pointe vers votre nouvelle image d’index, ce qui permet à OperatorHub de découvrir votre opérateur.
- Déployez votre opérateur dans votre cluster en créant un groupe d’opérateurs, un abonnement, un plan d’installation et toutes les autres ressources requises, y compris RBAC.
5.7.3. La publication d’un catalogue contenant un opérateur groupé Copier lienLien copié sur presse-papiers!
Afin d’installer et de gérer les opérateurs, le gestionnaire de cycle de vie de l’opérateur (OLM) exige que les paquets d’opérateurs soient listés dans une image d’index, qui est référencée par un catalogue sur le cluster. En tant qu’auteur de l’opérateur, vous pouvez utiliser le SDK de l’opérateur pour créer un index contenant le paquet pour votre opérateur et toutes ses dépendances. Ceci est utile pour tester les clusters distants et publier dans des registres de conteneurs.
Le SDK d’opérateur utilise l’opm CLI pour faciliter la création d’images d’index. L’expérience avec la commande opm n’est pas requise. Dans les cas avancés d’utilisation, la commande opm peut être utilisée directement au lieu du SDK de l’opérateur.
Conditions préalables
- L’opérateur SDK CLI installé sur un poste de travail de développement
- Ensemble d’image de l’opérateur construit et poussé à un registre
- Installation OLM sur un cluster basé sur Kubernetes (v1.16.0 ou version ultérieure si vous utilisez apiextensions.k8s.io/v1 CRDs, par exemple Red Hat OpenShift Service sur AWS 4)
- Connexion au cluster avec oc à l’aide d’un compte avec des autorisations d’administration dédiées
Procédure
Exécutez la commande make suivante dans votre répertoire de projet Opérateur pour créer une image d’index contenant votre paquet Opérateur:
make catalog-build CATALOG_IMG=<registry>/<user>/<index_image_name>:<tag>
$ make catalog-build CATALOG_IMG=<registry>/<user>/<index_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lorsque l’argument CATALOG_IMG fait référence à un référentiel auquel vous avez accès. Il est possible d’obtenir un compte de stockage des conteneurs sur des sites de dépôt tels que Quay.io.
Appuyez sur l’image d’index construite vers un référentiel:
make catalog-push CATALOG_IMG=<registry>/<user>/<index_image_name>:<tag>
$ make catalog-push CATALOG_IMG=<registry>/<user>/<index_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AstuceIl est possible d’utiliser les commandes de l’opérateur SDK si vous préférez effectuer plusieurs actions en séquence à la fois. Ainsi, si vous n’avez pas encore construit une image groupée pour votre projet Opérateur, vous pouvez construire et pousser à la fois une image de paquet et une image d’index avec la syntaxe suivante:
make bundle-build bundle-push catalog-build catalog-push \ BUNDLE_IMG=<bundle_image_pull_spec> \ BUNDLE_IMG=<bundle_image_pull_spec> \ CATALOG_IMG=<index_image_pull_spec> CATALOG_IMG=<index_image_pull_spec>
$ make bundle-build bundle-push catalog-build catalog-push \ BUNDLE_IMG=<bundle_image_pull_spec> \ CATALOG_IMG=<index_image_pull_spec>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alternativement, vous pouvez définir le champ IMAGE_TAG_BASE dans votre Makefile sur un référentiel existant:
IMAGE_TAG_BASE=quay.io/example/my-operator
IMAGE_TAG_BASE=quay.io/example/my-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ensuite, vous pouvez utiliser la syntaxe suivante pour créer et pousser des images avec des noms générés automatiquement, tels que quay.io/example/my-operator-bundle:v0.0.1 pour l’image de paquet et quay.io/example/my-operator-catalog:v0.0.1 pour l’image d’index:
make bundle-build bundle-push catalog-build catalog-push
$ make bundle-build bundle-push catalog-build catalog-push
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez un objet CatalogSource qui fait référence à l’image d’index que vous venez de générer, puis créez l’objet en utilisant la commande oc Apply ou la console web:
Exemple CatalogSource YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez la valeur de l’héritage ou de la restriction. Lorsque le champ n’est pas défini, la valeur par défaut est héritée. Dans un futur service Red Hat OpenShift sur AWS, il est prévu que la valeur par défaut soit limitée. Dans le cas où votre catalogue ne peut pas fonctionner avec des autorisations restreintes, il est recommandé de définir manuellement ce champ sur l’héritage.
- 2
- Définissez l’image sur la spécification d’extraction de l’image que vous avez utilisée précédemment avec l’argument CATALOG_IMG.
Consultez la source du catalogue:
oc get catalogsource
$ oc get catalogsource
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DISPLAY TYPE PUBLISHER AGE cs-memcached My Test grpc Company 4h31m
NAME DISPLAY TYPE PUBLISHER AGE cs-memcached My Test grpc Company 4h31m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
Installez l’opérateur à l’aide de votre catalogue:
Définissez un objet OperatorGroup et créez-le en utilisant la commande oc Apply ou la console web:
Exemple d’opérateur Groupe YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez un objet d’abonnement et créez-le en utilisant la commande oc Apply ou la console web:
Exemple d’abonnement YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
L’opérateur installé est en cours d’exécution:
Consultez le groupe d’opérateurs:
oc get og
$ oc get og
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME AGE my-test 4h40m
NAME AGE my-test 4h40m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Consultez la version du service cluster (CSV):
oc get csv
$ oc get csv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DISPLAY VERSION REPLACES PHASE memcached-operator.v0.0.1 Test 0.0.1 Succeeded
NAME DISPLAY VERSION REPLACES PHASE memcached-operator.v0.0.1 Test 0.0.1 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Consultez les pods pour l’opérateur:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE 9098d908802769fbde8bd45255e69710a9f8420a8f3d814abe88b68f8ervdj6 0/1 Completed 0 4h33m catalog-controller-manager-7fd5b7b987-69s4n 2/2 Running 0 4h32m cs-memcached-7622r 1/1 Running 0 4h33m
NAME READY STATUS RESTARTS AGE 9098d908802769fbde8bd45255e69710a9f8420a8f3d814abe88b68f8ervdj6 0/1 Completed 0 4h33m catalog-controller-manager-7fd5b7b987-69s4n 2/2 Running 0 4h32m cs-memcached-7622r 1/1 Running 0 4h33m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.4. Tester une mise à niveau de l’opérateur sur le gestionnaire de cycle de vie de l’opérateur Copier lienLien copié sur presse-papiers!
Il est possible de tester rapidement la mise à niveau de votre opérateur en utilisant l’intégration du gestionnaire de cycle de vie de l’opérateur (OLM) dans le SDK de l’opérateur, sans avoir à gérer manuellement les images d’index et les sources de catalogue.
La sous-commande run bundle-upgrade automatise le déclenchement d’un opérateur installé pour passer à une version ultérieure en spécifiant une image de paquet pour la version ultérieure.
Conditions préalables
- L’opérateur installé avec OLM soit à l’aide de la sous-commande run bundle ou avec l’installation OLM traditionnelle
- Image groupée qui représente une version ultérieure de l’opérateur installé
Procédure
Dans le cas où votre opérateur n’a pas déjà été installé avec OLM, installez la version précédente soit en utilisant la sous-commande run bundle ou avec l’installation OLM traditionnelle.
NoteLorsque la version antérieure du paquet a été installée traditionnellement à l’aide d’ODM, le nouveau paquet que vous avez l’intention de mettre à niveau ne doit pas exister dans l’image d’index référencée par la source du catalogue. Dans le cas contraire, l’exécution de la sous-commande de mise à niveau de paquets d’exécution entraînera l’échec de la pod de registre parce que le nouveau paquet est déjà référencé par l’index qui fournit la version de service de paquet et de cluster (CSV).
À titre d’exemple, vous pouvez utiliser la sous-commande de paquets d’exécution suivante pour un opérateur Memcached en spécifiant l’image du paquet précédent:
operator-sdk run bundle <registry>/<user>/memcached-operator:v0.0.1
$ operator-sdk run bundle <registry>/<user>/memcached-operator:v0.0.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Améliorez l’opérateur installé en spécifiant l’image du paquet pour la version ultérieure de l’opérateur:
operator-sdk run bundle-upgrade <registry>/<user>/memcached-operator:v0.0.2
$ operator-sdk run bundle-upgrade <registry>/<user>/memcached-operator:v0.0.2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nettoyer les opérateurs installés:
operator-sdk cleanup memcached-operator
$ operator-sdk cleanup memcached-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.5. Contrôle de la compatibilité de l’opérateur avec Red Hat OpenShift Service sur les versions AWS Copier lienLien copié sur presse-papiers!
Kubernetes déprécie périodiquement certaines API qui sont supprimées dans les versions ultérieures. Lorsque votre opérateur utilise une API obsolète, il se peut que cela ne fonctionne plus après la mise à niveau du service Red Hat OpenShift sur le cluster AWS vers la version Kubernetes où l’API a été supprimée.
En tant qu’auteur de l’opérateur, il est fortement recommandé de consulter le Guide de migration de l’API obsolète dans la documentation Kubernetes et de garder vos projets d’opérateur à jour afin d’éviter d’utiliser des API dépréciées et supprimées. Idéalement, vous devriez mettre à jour votre opérateur avant la sortie d’une future version de Red Hat OpenShift Service sur AWS qui rendrait l’opérateur incompatible.
Lorsqu’une API est supprimée d’un service Red Hat OpenShift sur la version AWS, les opérateurs fonctionnant sur cette version de cluster qui utilisent toujours des API supprimées ne fonctionneront plus correctement. En tant qu’auteur de l’opérateur, vous devez prévoir de mettre à jour vos projets d’opérateur afin de tenir compte de la déprécation et de la suppression de l’API afin d’éviter les interruptions pour les utilisateurs de votre opérateur.
Consultez les alertes d’événements de vos opérateurs pour savoir s’il y a des avertissements sur les API actuellement utilisées. Les alertes suivantes s’allument lorsqu’elles détectent une API utilisée qui sera supprimée dans la prochaine version:
APIRemovedInNextReleaseInUse
- API qui seront supprimées dans la prochaine Red Hat OpenShift Service sur AWS.
APIRemovedInNextEUSReleaseInUse
- API qui seront supprimées dans la prochaine version de Red Hat OpenShift Service sur AWS Extended Update Support (EUS).
Lorsqu’un administrateur de cluster a installé votre opérateur, avant de passer à la prochaine version de Red Hat OpenShift Service sur AWS, il doit s’assurer qu’une version de votre opérateur est installée et compatible avec la prochaine version du cluster. Bien qu’il soit recommandé de mettre à jour vos projets d’opérateur pour ne plus utiliser des API désappropriées ou supprimées, si vous avez encore besoin de publier vos paquets Opérateur avec des API supprimées pour une utilisation continue sur les versions antérieures de Red Hat OpenShift Service sur AWS, assurez-vous que le paquet est configuré en conséquence.
La procédure suivante empêche les administrateurs d’installer des versions de votre opérateur sur une version incompatible de Red Hat OpenShift Service sur AWS. Ces étapes empêchent également les administrateurs de passer à une nouvelle version de Red Hat OpenShift Service sur AWS qui est incompatible avec la version de votre opérateur qui est actuellement installée sur leur cluster.
Cette procédure est également utile lorsque vous savez que la version actuelle de votre opérateur ne fonctionnera pas bien, pour quelque raison que ce soit, sur un service Red Hat OpenShift spécifique sur la version AWS. En définissant les versions de cluster où l’opérateur doit être distribué, vous vous assurez que l’opérateur n’apparaît pas dans un catalogue d’une version de cluster qui est en dehors de la plage autorisée.
Les opérateurs qui utilisent des API obsolètes peuvent avoir un impact négatif sur les charges de travail critiques lorsque les administrateurs de cluster passent à une future version de Red Hat OpenShift Service sur AWS où l’API n’est plus prise en charge. Lorsque votre opérateur utilise des API obsolètes, vous devez configurer les paramètres suivants dans votre projet Opérateur dès que possible.
Conditions préalables
- D’un projet opérateur existant
Procédure
Lorsque vous savez qu’un paquet spécifique de votre opérateur n’est pas pris en charge et ne fonctionne pas correctement sur Red Hat OpenShift Service sur AWS plus tard qu’une certaine version de cluster, configurez la version maximale de Red Hat OpenShift Service sur AWS avec laquelle votre opérateur est compatible. Dans la version de service cluster de votre projet Opérateur (CSV), définissez l’annotation olm.maxOpenShiftVersion pour empêcher les administrateurs de mettre à niveau leur cluster avant de mettre à niveau l’opérateur installé vers une version compatible:
ImportantIl faut utiliser l’annotation olm.maxOpenShiftVersion uniquement si la version de votre bundle Opérateur ne peut pas fonctionner dans les versions ultérieures. Gardez à l’esprit que les administrateurs de clusters ne peuvent pas mettre à jour leurs clusters avec votre solution installée. Dans le cas où vous ne fournissez pas une version ultérieure et un chemin de mise à niveau valide, les administrateurs peuvent désinstaller votre opérateur et mettre à niveau la version du cluster.
Exemple CSV avec olm.maxOpenShiftVersion annotation
apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: "olm.properties": '[{"type": "olm.maxOpenShiftVersion", "value": "<cluster_version>"}]'
apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: "olm.properties": '[{"type": "olm.maxOpenShiftVersion", "value": "<cluster_version>"}]'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez la version de cluster maximale de Red Hat OpenShift Service sur AWS avec laquelle votre opérateur est compatible. À titre d’exemple, le réglage de la valeur à 4.9 empêche les mises à niveau de cluster vers Red Hat OpenShift Service sur les versions AWS plus tard que 4.9 lorsque ce paquet est installé sur un cluster.
Configurez les versions compatibles de Red Hat OpenShift Service sur AWS pour votre opérateur en définissant les propriétés suivantes. Cette configuration garantit que votre opérateur n’est inclus que dans les catalogues ciblant les versions compatibles de Red Hat OpenShift Service sur AWS:
NoteCette étape n’est valable que lorsque vous publiez des opérateurs dans des catalogues fournis par Red Hat. Dans le cas où votre paquet n’est destiné qu’à la distribution dans un catalogue personnalisé, vous pouvez sauter cette étape. En savoir plus, voir "Catalogues de l’opérateur fourni par le chapeau rouge".
Définissez l’annotation com.redhat.openshift.versions dans le fichier bundle/metadata/annotations.yaml de votre projet:
Exemple de fichier bundle/metadata/annotations.yaml avec des versions compatibles
com.redhat.openshift.versions: "v4.7-v4.9"
com.redhat.openshift.versions: "v4.7-v4.9"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Défini sur une gamme ou une seule version.
Afin d’éviter que votre paquet ne soit transmis à une version incompatible de Red Hat OpenShift Service sur AWS, assurez-vous que l’image d’index est générée avec l’étiquette com.redhat.openshift.versions appropriée dans l’image du paquet de votre opérateur. À titre d’exemple, si votre projet a été généré à l’aide du SDK de l’opérateur, mettez à jour le fichier bundle.Dockerfile:
Exemple bundle.Dockerfile avec des versions compatibles
LABEL com.redhat.openshift.versions="<versions>"
LABEL com.redhat.openshift.versions="<versions>"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Défini sur une plage ou une seule version, par exemple v4.7-v4.9. Ce paramètre définit les versions de cluster où l’opérateur doit être distribué, et l’opérateur n’apparaît pas dans un catalogue d’une version de cluster qui est en dehors de la plage.
Désormais, vous pouvez regrouper une nouvelle version de votre opérateur et publier la version mise à jour dans un catalogue pour distribution.