4.7. Gestion des catalogues personnalisés
Les administrateurs ayant le rôle d’administrateur dédié et les responsables du catalogue de l’opérateur peuvent créer et gérer des catalogues personnalisés emballés à l’aide du format bundle sur Operator Lifecycle Manager (OLM) dans OpenShift Dedicated.
Kubernetes déprécie périodiquement certaines API qui sont supprimées dans les versions ultérieures. En conséquence, les opérateurs ne peuvent pas utiliser les API supprimées à partir de la version d’OpenShift Dedicated qui utilise la version Kubernetes qui a supprimé l’API.
Lorsque votre cluster utilise des catalogues personnalisés, consultez la compatibilité de Controlling Operator avec les versions dédiées d’OpenShift pour plus de détails sur la façon dont les auteurs de l’opérateur peuvent mettre à jour leurs projets afin d’éviter les problèmes de charge de travail et d’éviter les mises à niveau incompatibles.
4.7.1. Conditions préalables Copier lienLien copié sur presse-papiers!
- C’est vous qui avez installé l’opm CLI.
4.7.2. Catalogues basés sur des fichiers Copier lienLien copié sur presse-papiers!
Les catalogues basés sur des fichiers sont la dernière itération du format de catalogue dans Operator Lifecycle Manager (OLM). Il s’agit d’un texte simple (JSON ou YAML) et d’une évolution de configuration déclarative du format de base de données SQLite antérieur, et il est entièrement rétrocompatible.
À partir d’OpenShift Dedicated 4.11, le catalogue de l’opérateur par défaut Red Hat est publié dans le format de catalogue basé sur des fichiers. Les catalogues d’opérateurs Red Hat fournis par défaut pour OpenShift Dedicated 4.6 à 4.10 publiés dans le format de base de données SQLite obsolète.
Les sous-commandes opm, les drapeaux et les fonctionnalités liés au format de base de données SQLite sont également obsolètes et seront supprimés dans une version ultérieure. Les fonctionnalités sont toujours prises en charge et doivent être utilisées pour les catalogues utilisant le format de base de données SQLite obsolète.
La plupart des sous-commandes et des drapeaux opm pour travailler avec le format de base de données SQLite, tels que le prune de l’index opm, ne fonctionnent pas avec le format de catalogue basé sur des fichiers. Consultez le format d’emballage Operator Framework pour plus d’informations sur le travail avec les catalogues basés sur des fichiers.
4.7.2.1. Création d’une image de catalogue basée sur des fichiers Copier lienLien copié sur presse-papiers!
Il est possible d’utiliser l’opm CLI pour créer une image de catalogue qui utilise le format de catalogue basé sur un fichier en texte brut (JSON ou YAML), qui remplace le format de base de données SQLite obsolète.
Conditions préalables
- C’est vous qui avez installé l’opm CLI.
- Il y a la version 1.9.3+ de podman.
- L’image groupée est construite et poussée vers un registre qui prend en charge Docker v2-2.
Procédure
Initialiser le catalogue:
Créer un répertoire pour le catalogue en exécutant la commande suivante:
mkdir <catalog_dir>
$ mkdir <catalog_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Générer un Dockerfile qui peut construire une image de catalogue en exécutant la commande opm générer dockerfile:
opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4 -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4
$ opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez l’image de base officielle Red Hat en utilisant le drapeau -i, sinon le Dockerfile utilise l’image par défaut en amont.
Le Dockerfile doit être dans le même répertoire parent que le répertoire de catalogue que vous avez créé à l’étape précédente:
Exemple de structure de répertoire
. ├── <catalog_dir> └── <catalog_dir>.Dockerfile
.
1 ├── <catalog_dir>
2 └── <catalog_dir>.Dockerfile
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Remplissez le catalogue avec la définition du paquet pour votre opérateur en exécutant la commande opm init:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Exploitant, ou paquet, nom
- 2
- Canal auquel les abonnements par défaut s’ils ne sont pas spécifiés
- 3
- Chemin vers la documentation README.md de l’opérateur ou autre documentation
- 4
- Chemin vers l’icône de l’opérateur
- 5
- Format de sortie: JSON ou YAML
- 6
- Chemin de création du fichier de configuration du catalogue
Cette commande génère un blob de configuration déclaratif olm.package dans le fichier de configuration du catalogue spécifié.
Ajouter un paquet au catalogue en exécutant la commande de rendu opm:
opm render <registry>/<namespace>/<bundle_image_name>:<tag> \ --output=yaml \ >> <catalog_dir>/index.yaml
$ opm render <registry>/<namespace>/<bundle_image_name>:<tag> \
1 --output=yaml \ >> <catalog_dir>/index.yaml
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLes canaux doivent contenir au moins un paquet.
Ajoutez une entrée de canal pour le paquet. À titre d’exemple, modifiez l’exemple suivant à vos spécifications et ajoutez-le à votre fichier <catalog_dir>/index.yaml:
Exemple d’entrée de canal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Assurez-vous d’inclure la période (.) après <operator_name> mais avant le v dans la version. Dans le cas contraire, l’entrée ne parvient pas à passer la commande de validation opm.
De valider le catalogue basé sur les fichiers:
Exécutez la commande opm valider par rapport au répertoire du catalogue:
opm validate <catalog_dir>
$ opm validate <catalog_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que le code d’erreur est 0:
echo $?
$ echo $?
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
0
0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créez l’image du catalogue en exécutant la commande podman build:
podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image du catalogue vers un registre:
Au besoin, authentifier avec votre registre cible en exécutant la commande de connexion podman:
podman login <registry>
$ podman login <registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image du catalogue en exécutant la commande podman push:
podman push <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman push <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.2.2. La mise à jour ou le filtrage d’une image de catalogue basée sur des fichiers Copier lienLien copié sur presse-papiers!
Il est possible d’utiliser l’opm CLI pour mettre à jour ou filtrer une image de catalogue qui utilise le format de catalogue basé sur des fichiers. En extrayant le contenu d’une image de catalogue existante, vous pouvez modifier le catalogue au besoin, par exemple:
- Ajout de paquets
- En supprimant les paquets
- La mise à jour des entrées de paquet existantes
- Détail des messages de déprécation par paquet, canal et paquet
Ensuite, vous pouvez reconstruire l’image comme une version mise à jour du catalogue.
Conditions préalables
Il y a ce qui suit sur votre poste de travail:
- L’opm CLI.
- la version 1.9.3+ de Podman.
- Image de catalogue basée sur des fichiers.
La structure d’un répertoire de catalogue a récemment initialisé sur votre poste de travail lié à ce catalogue.
Lorsque vous n’avez pas de répertoire de catalogue initialisé, créez le répertoire et générez le Dockerfile. Consultez l’étape "Initialiser le catalogue" à partir de la procédure "Créer une image de catalogue basée sur un fichier".
Procédure
Extraire le contenu de l’image du catalogue au format YAML dans un fichier index.yaml dans votre répertoire de catalogue:
opm render <registry>/<namespace>/<catalog_image_name>:<tag> \ -o yaml > <catalog_dir>/index.yaml -o yaml > <catalog_dir>/index.yaml
$ opm render <registry>/<namespace>/<catalog_image_name>:<tag> \ -o yaml > <catalog_dir>/index.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteAlternativement, vous pouvez utiliser le drapeau -o json pour afficher au format JSON.
Modifiez le contenu du fichier index.yaml résultant à vos spécifications:
ImportantAprès la publication d’un paquet dans un catalogue, supposez que l’un de vos utilisateurs l’a installé. Assurez-vous que tous les paquets publiés précédemment dans un catalogue disposent d’un chemin de mise à jour vers la tête de canal actuelle ou plus récente pour éviter d’échouer les utilisateurs qui ont cette version installée.
- Afin d’ajouter un opérateur, suivez les étapes de création de paquets, de paquets et de canaux dans la procédure "Créer une image de catalogue basée sur un fichier".
Afin de supprimer un opérateur, supprimez les blobs olm.package, olm.channel et olm.bundle qui se rapportent au paquet. L’exemple suivant montre un ensemble qui doit être supprimé pour supprimer le package example-operator du catalogue:
Exemple 4.9. Exemple d’entrées supprimées
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Afin d’ajouter ou de mettre à jour des messages de déprécation pour un opérateur, assurez-vous qu’il y a un fichier déprecations.yaml dans le même répertoire que le fichier index.yaml du paquet. Informations sur le format de fichier deprecations.yaml, voir "olm.deprecations schema".
- Enregistrez vos modifications.
De valider le catalogue:
opm validate <catalog_dir>
$ opm validate <catalog_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reconstruire le catalogue:
podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image du catalogue mise à jour vers un registre:
podman push <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman push <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
-
Dans la console Web, accédez à la ressource de configuration OperatorHub dans la page Administration
Paramètres de cluster Configuration. Ajoutez la source du catalogue ou mettez à jour la source du catalogue existant pour utiliser la spécification de traction pour votre image de catalogue mise à jour.
De plus amples informations, voir "Ajouter une source de catalogue à un cluster" dans les "Ressources supplémentaires" de cette section.
-
Après que la source du catalogue est dans un état READY, accédez à la page Opérateurs
OperatorHub et vérifiez que les modifications que vous avez apportées sont reflétées dans la liste des Opérateurs.
4.7.3. Catalogues SQLite Copier lienLien copié sur presse-papiers!
Le format de base de données SQLite pour les catalogues Operator est une fonctionnalité obsolète. La fonctionnalité obsolète est toujours incluse dans OpenShift Dedicated et continue d’être prise en charge; cependant, elle sera supprimée dans une version ultérieure de ce produit et n’est pas recommandée pour de nouveaux déploiements.
Dans la liste la plus récente des fonctionnalités majeures qui ont été dépréciées ou supprimées dans OpenShift Dedicated, faites référence à la section Fonctionnalités obsolètes et supprimées des notes de sortie OpenShift Dedicated.
4.7.3.1. Création d’une image d’index SQLite Copier lienLien copié sur presse-papiers!
Il est possible de créer une image d’index basée sur le format de base de données SQLite à l’aide de l’opm CLI.
Conditions préalables
- C’est vous qui avez installé l’opm CLI.
- Il y a la version 1.9.3+ de podman.
- L’image groupée est construite et poussée vers un registre qui prend en charge Docker v2-2.
Procédure
Commencez un nouvel index:
opm index add \ --bundles <registry>/<namespace>/<bundle_image_name>:<tag> \ --tag <registry>/<namespace>/<index_image_name>:<tag> \ [--binary-image <registry_base_image>]
$ opm index add \ --bundles <registry>/<namespace>/<bundle_image_name>:<tag> \
1 --tag <registry>/<namespace>/<index_image_name>:<tag> \
2 [--binary-image <registry_base_image>]
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image de l’index vers un registre.
Au besoin, authentifier avec votre registre cible:
podman login <registry>
$ podman login <registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image de l’index:
podman push <registry>/<namespace>/<index_image_name>:<tag>
$ podman push <registry>/<namespace>/<index_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.3.2. La mise à jour d’une image d’index SQLite Copier lienLien copié sur presse-papiers!
Après avoir configuré OperatorHub pour utiliser une source de catalogue qui fait référence à une image d’index personnalisée, les administrateurs avec le rôle dédié-admin peuvent garder les opérateurs disponibles sur leur cluster à jour en ajoutant des images groupées à l’image d’index.
Il est possible de mettre à jour une image d’index existante à l’aide de la commande Opm index add.
Conditions préalables
- C’est vous qui avez installé l’opm CLI.
- Il y a la version 1.9.3+ de podman.
- L’image d’index est construite et poussée vers un registre.
- Il existe une source de catalogue existante faisant référence à l’image de l’index.
Procédure
Actualisez l’index existant en ajoutant des images groupées:
opm index add \ --bundles <registry>/<namespace>/<new_bundle_image>@sha256:<digest> \ --from-index <registry>/<namespace>/<existing_index_image>:<existing_tag> \ --tag <registry>/<namespace>/<existing_index_image>:<updated_tag> \ --pull-tool podman
$ opm index add \ --bundles <registry>/<namespace>/<new_bundle_image>@sha256:<digest> \
1 --from-index <registry>/<namespace>/<existing_index_image>:<existing_tag> \
2 --tag <registry>/<namespace>/<existing_index_image>:<updated_tag> \
3 --pull-tool podman
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- L’indicateur --bundles spécifie une liste séparée par des virgules d’images de paquet supplémentaires à ajouter à l’index.
- 2
- L’indicateur --from-index spécifie l’index précédemment poussé.
- 3
- L’indicateur --tag spécifie la balise image à appliquer à l’image d’index mise à jour.
- 4
- Le drapeau --pull-outil spécifie l’outil utilisé pour tirer des images de conteneur.
là où:
<registre>
- Indique le nom d’hôte du registre, tel que quay.io ou mirror.example.com.
<namespace>
- Indique l’espace de noms du registre, tel que ocs-dev ou abc.
<new_bundle_image>
- Indique la nouvelle image de paquet à ajouter au registre, comme ocs-operator.
<digest>
- Indique l’ID d’image SHA, ou digérer, de l’image de faisceau, telle que c7f11097a628f092d8bad148406a0e0951094a03445fd4bc0775431ef683a41.
<bx id="1" />
- Indique l’image précédemment poussée, telle que abc-redhat-operator-index.
<bx id="1" />
- Indique une balise d’image précédemment poussée, telle que 4.
<mise à jour_tag>
- Indique la balise image à appliquer à l’image d’index mise à jour, telle que 4.1.
Commande d’exemple
opm index add \ --bundles quay.io/ocs-dev/ocs-operator@sha256:c7f11097a628f092d8bad148406aa0e0951094a03445fd4bc0775431ef683a41 \ --from-index mirror.example.com/abc/abc-redhat-operator-index:4 \ --tag mirror.example.com/abc/abc-redhat-operator-index:4.1 \ --pull-tool podman
$ opm index add \ --bundles quay.io/ocs-dev/ocs-operator@sha256:c7f11097a628f092d8bad148406aa0e0951094a03445fd4bc0775431ef683a41 \ --from-index mirror.example.com/abc/abc-redhat-operator-index:4 \ --tag mirror.example.com/abc/abc-redhat-operator-index:4.1 \ --pull-tool podman
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appuyez sur l’image de l’index mise à jour:
podman push <registry>/<namespace>/<existing_index_image>:<updated_tag>
$ podman push <registry>/<namespace>/<existing_index_image>:<updated_tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Après que Operator Lifecycle Manager (OLM) sonde automatiquement l’image de l’index référencée dans la source du catalogue à son intervalle régulier, vérifiez que les nouveaux paquets sont ajoutés avec succès:
oc get packagemanifests -n openshift-marketplace
$ oc get packagemanifests -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.3.3. Filtrage d’une image d’index SQLite Copier lienLien copié sur presse-papiers!
L’image d’index, basée sur le format du paquet Opérateur, est un instantané conteneurisé d’un catalogue Opérateur. Il est possible de filtrer, ou tailler, un index de tous les paquets sauf une liste spécifiée, qui crée une copie de l’index source contenant uniquement les Opérateurs que vous souhaitez.
Conditions préalables
- Il y a la version 1.9.3+ de podman.
- Il y a grpcurl (outil de ligne de commande tiers).
- C’est vous qui avez installé l’opm CLI.
- Il y a accès à un registre qui prend en charge Docker v2-2.
Procédure
Authentifier avec votre registre cible:
podman login <target_registry>
$ podman login <target_registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Déterminez la liste des paquets que vous souhaitez inclure dans votre index élevé.
Exécutez l’image de l’index source que vous souhaitez tailler dans un conteneur. À titre d’exemple:
podman run -p50051:50051 \ -it registry.redhat.io/redhat/redhat-operator-index:v4
$ podman run -p50051:50051 \ -it registry.redhat.io/redhat/redhat-operator-index:v4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Trying to pull registry.redhat.io/redhat/redhat-operator-index:v4... Getting image source signatures Copying blob ae8a0c23f5b1 done ... INFO[0000] serving registry database=/database/index.db port=50051
Trying to pull registry.redhat.io/redhat/redhat-operator-index:v4... Getting image source signatures Copying blob ae8a0c23f5b1 done ... INFO[0000] serving registry database=/database/index.db port=50051
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans une session terminale séparée, utilisez la commande grpcurl pour obtenir une liste des paquets fournis par l’index:
grpcurl -plaintext localhost:50051 api.Registry/ListPackages > packages.out
$ grpcurl -plaintext localhost:50051 api.Registry/ListPackages > packages.out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Inspectez le fichier packages.out et identifiez les noms de paquets de cette liste que vous souhaitez conserver dans votre index élevé. À titre d’exemple:
Exemples d’extraits de liste de paquets
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Dans la session terminale où vous avez exécuté la commande podman exécuter, appuyez sur Ctrl et C pour arrêter le processus de conteneur.
Exécutez la commande suivante pour tailler l’index source de tous les paquets sauf les paquets spécifiés:
opm index prune \ -f registry.redhat.io/redhat/redhat-operator-index:v4 \ -p advanced-cluster-management,jaeger-product,quay-operator \ [-i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4] \ -t <target_registry>:<port>/<namespace>/redhat-operator-index:v4
$ opm index prune \ -f registry.redhat.io/redhat/redhat-operator-index:v4 \
1 -p advanced-cluster-management,jaeger-product,quay-operator \
2 [-i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4] \
3 -t <target_registry>:<port>/<namespace>/redhat-operator-index:v4
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Index sur prune.
- 2
- Liste des paquets séparés par les virgules à conserver.
- 3
- Requis uniquement pour les images IBM Power® et IBM Z® : image de base du registre de l’opérateur avec l’étiquette correspondant à la version majeure et mineure du cluster dédié à OpenShift.
- 4
- Balise personnalisée pour la nouvelle image d’index en cours de construction.
Exécutez la commande suivante pour pousser la nouvelle image d’index vers votre registre cible:
podman push <target_registry>:<port>/<namespace>/redhat-operator-index:v4
$ podman push <target_registry>:<port>/<namespace>/redhat-operator-index:v4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lorsque <namespace> est un espace de noms existant sur le registre.
4.7.4. Catalogue sources et admission de sécurité de pod Copier lienLien copié sur presse-papiers!
L’admission à la sécurité des pod a été introduite dans OpenShift Dedicated 4.11 pour garantir les normes de sécurité des pod. Les sources de catalogue construites à l’aide du format de catalogue SQLite et d’une version de l’outil opm CLI publié avant OpenShift Dedicated 4.11 ne peuvent pas fonctionner sous l’application de la sécurité des pods restreints.
Dans OpenShift Dedicated 4, les espaces de noms n’ont pas restreint l’application de la sécurité des pod par défaut et le mode de sécurité source du catalogue par défaut est défini à l’héritage.
L’application restreinte par défaut pour tous les espaces de noms est prévue pour inclusion dans une future version d’OpenShift Dedicated. Lorsque l’exécution restreinte se produit, le contexte de sécurité de la spécification de la pod pour les gousses sources de catalogue doit correspondre à la norme de sécurité de la gousse restreinte. Lorsque l’image source de votre catalogue nécessite une norme de sécurité différente, l’étiquette d’entrées de sécurité de pod pour l’espace de noms doit être explicitement définie.
Dans le cas où vous ne souhaitez pas exécuter vos pods source de catalogue SQLite comme restreints, vous n’avez pas besoin de mettre à jour votre source de catalogue dans OpenShift Dedicated 4.
Cependant, il est recommandé de prendre des mesures dès maintenant pour s’assurer que vos sources de catalogue s’exécutent sous l’application de la sécurité des pods restreints. Lorsque vous ne prenez pas d’action pour vous assurer que vos sources de catalogue s’exécutent sous l’application de la sécurité des pods restreints, vos sources de catalogue pourraient ne pas fonctionner dans les futures versions d’OpenShift Dedicated.
En tant qu’auteur de catalogue, vous pouvez activer la compatibilité avec l’application de la sécurité des pods restreints en complétant l’une des actions suivantes:
- Faites migrer votre catalogue vers le format de catalogue basé sur des fichiers.
- Actualisez l’image de votre catalogue avec une version de l’outil opm CLI publié avec OpenShift Dedicated 4.11 ou version ultérieure.
Le format du catalogue de base de données SQLite est obsolète, mais toujours pris en charge par Red Hat. Dans une version ultérieure, le format de base de données SQLite ne sera pas pris en charge et les catalogues devront migrer vers le format de catalogue basé sur les fichiers. À partir d’OpenShift Dedicated 4.11, le catalogue de l’opérateur par défaut Red Hat est publié dans le format de catalogue basé sur les fichiers. Les catalogues basés sur des fichiers sont compatibles avec l’application de la sécurité des pod restreints.
Lorsque vous ne souhaitez pas mettre à jour votre image de catalogue SQLite ou migrer votre catalogue vers le format de catalogue basé sur des fichiers, vous pouvez configurer votre catalogue pour fonctionner avec des autorisations élevées.
4.7.4.1. La migration des catalogues de base de données SQLite vers le format de catalogue basé sur des fichiers Copier lienLien copié sur presse-papiers!
Il est possible de mettre à jour vos catalogues de format de base de données SQLite obsolètes au format de catalogue basé sur des fichiers.
Conditions préalables
- Il y a une source de catalogue de base de données SQLite.
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
- La dernière version de l’outil Opm CLI est disponible avec OpenShift Dedicated 4 sur votre poste de travail.
Procédure
Faites migrer votre catalogue de base de données SQLite vers un catalogue basé sur des fichiers en exécutant la commande suivante:
opm migrate <registry_image> <fbc_directory>
$ opm migrate <registry_image> <fbc_directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Générez un Dockerfile pour votre catalogue basé sur des fichiers en exécutant la commande suivante:
opm generate dockerfile <fbc_directory> \ --binary-image \ registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4
$ opm generate dockerfile <fbc_directory> \ --binary-image \ registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Les prochaines étapes
- Le Dockerfile généré peut être construit, étiqueté et poussé à votre registre.
4.7.4.2. La reconstruction des images du catalogue SQLite Copier lienLien copié sur presse-papiers!
Il est possible de reconstruire l’image de votre catalogue SQLite avec la dernière version de l’outil Opm CLI qui est publié avec votre version d’OpenShift Dedicated.
Conditions préalables
- Il y a une source de catalogue de base de données SQLite.
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
- La dernière version de l’outil Opm CLI est disponible avec OpenShift Dedicated 4 sur votre poste de travail.
Procédure
Exécutez la commande suivante pour reconstruire votre catalogue avec une version plus récente de l’outil Opm CLI:
opm index add --binary-image \ registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4 \ --from-index <your_registry_image> \ --bundles "" -t \<your_registry_image>
$ opm index add --binary-image \ registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4 \ --from-index <your_registry_image> \ --bundles "" -t \<your_registry_image>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.4.3. Configuration des catalogues à exécuter avec des autorisations élevées Copier lienLien copié sur presse-papiers!
Dans le cas où vous ne souhaitez pas mettre à jour votre image de catalogue SQLite ou migrer votre catalogue vers le format de catalogue basé sur des fichiers, vous pouvez effectuer les actions suivantes pour vous assurer que votre source de catalogue s’exécute lorsque l’application de la sécurité de la pod par défaut est limitée:
- Définissez manuellement le mode de sécurité du catalogue à l’héritage dans la définition de votre source de catalogue. Cette action garantit que votre catalogue s’exécute avec des autorisations héritées même si le mode de sécurité du catalogue par défaut change à restreint.
- Étiqueter l’espace de noms source du catalogue pour l’application de la sécurité de base ou de pod privilégié.
Le format du catalogue de base de données SQLite est obsolète, mais toujours pris en charge par Red Hat. Dans une version ultérieure, le format de base de données SQLite ne sera pas pris en charge et les catalogues devront migrer vers le format de catalogue basé sur les fichiers. Les catalogues basés sur des fichiers sont compatibles avec l’application de la sécurité des pod restreints.
Conditions préalables
- Il y a une source de catalogue de base de données SQLite.
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
- Il y a un espace de noms cible qui prend en charge les pods en cours d’exécution avec la norme d’admission de sécurité élevée de base ou privilégiée.
Procédure
Editez la définition de CatalogSource en définissant l’étiquette spec.grpcPodConfig.securityContextConfig sur l’héritage, comme indiqué dans l’exemple suivant:
Exemple de CatalogSource Définition
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AstuceDans OpenShift Dedicated 4, le champ spec.grpcPodConfig.securityContextConfig est défini à l’héritage par défaut. Dans une version ultérieure d’OpenShift Dedicated, il est prévu que le paramètre par défaut change pour être limité. Dans le cas où votre catalogue ne peut pas fonctionner sous une application restreinte, il est recommandé de définir manuellement ce champ sur l’héritage.
Modifiez votre fichier <namespace>.yaml pour ajouter des normes d’admission de sécurité de pod élevées à votre espace de noms source de catalogue, comme indiqué dans l’exemple suivant:
Exemple <namespace>.yaml fichier
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Désactivez la synchronisation des étiquettes de sécurité de pod en ajoutant l’étiquette security.openshift.io/scc.podSecurityLabelSync=false à l’espace de noms.
- 2
- Appliquez l’étiquette pod-security.kubernetes.io/enforce. Définissez l’étiquette en ligne de base ou privilégiée. Utilisez le profil de sécurité de la pod de base, sauf si d’autres charges de travail dans l’espace de noms nécessitent un profil privilégié.
4.7.5. Ajout d’une source de catalogue à un cluster Copier lienLien copié sur presse-papiers!
L’ajout d’une source de catalogue à un cluster dédié OpenShift permet la découverte et l’installation des opérateurs pour les utilisateurs. Les administrateurs avec le rôle dédié-admin peuvent créer un objet CatalogSource qui fait référence à une image d’index. OperatorHub utilise des sources de catalogue pour peupler l’interface utilisateur.
Alternativement, vous pouvez utiliser la console Web pour gérer les sources de catalogue. Dans la page Accueil
Conditions préalables
- « vous avez construit et poussé une image d’index vers un registre.
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
Procédure
Créez un objet CatalogSource qui fait référence à votre image d’index.
Modifiez ce qui suit à vos spécifications et enregistrez-le sous forme de fichier catalogSource.yaml:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Lorsque vous souhaitez que la source du catalogue soit disponible à l’échelle mondiale pour les utilisateurs de tous les espaces de noms, spécifiez l’espace de noms openshift-marketplace. Dans le cas contraire, vous pouvez spécifier un espace de noms différent pour le catalogue à portée et disponible uniquement pour cet espace de noms.
- 2
- Facultatif: Définir l’annotation olm.catalogImageTempler sur votre nom d’image d’index et utiliser une ou plusieurs des variables de version du cluster Kubernetes comme indiqué lors de la construction du modèle pour la balise d’image.
- 3
- 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 une version ultérieure d’OpenShift Dedicated, 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.
- 4
- Indiquez votre image d’index. Lorsque vous spécifiez une balise après le nom de l’image, par exemple :v4, la source du catalogue utilise une stratégie de traction d’image de Always, ce qui signifie que le pod tire toujours l’image avant de démarrer le conteneur. Lorsque vous spécifiez un digest, par exemple @sha256:<id>, la stratégie d’extraction de l’image est IfNotPresent, ce qui signifie que le pod tire l’image uniquement si elle n’existe pas déjà sur le nœud.
- 5
- Indiquez votre nom ou un nom d’organisation qui publie le catalogue.
- 6
- Les sources du catalogue peuvent vérifier automatiquement les nouvelles versions pour se tenir à jour.
Créez l’objet CatalogSource:
oc apply -f catalogSource.yaml
$ oc apply -f catalogSource.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Assurez-vous que les ressources suivantes sont créées avec succès.
Consultez les gousses:
oc get pods -n openshift-marketplace
$ oc get pods -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26h
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Consultez la source du catalogue:
oc get catalogsource -n openshift-marketplace
$ oc get catalogsource -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5s
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Consultez le manifeste du paquet:
oc get packagemanifest -n openshift-marketplace
$ oc get packagemanifest -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME CATALOG AGE jaeger-product My Operator Catalog 93s
NAME CATALOG AGE jaeger-product My Operator Catalog 93s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Désormais, vous pouvez installer les Opérateurs à partir de la page OperatorHub sur votre console Web dédiée OpenShift.
4.7.6. La suppression des catalogues personnalisés Copier lienLien copié sur presse-papiers!
En tant qu’administrateur avec le rôle d’administrateur dédié, vous pouvez supprimer les catalogues d’opérateur personnalisés qui ont déjà été ajoutés à votre cluster en supprimant la source du catalogue connexe.
Conditions préalables
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
Procédure
-
Dans la perspective de l’administrateur de la console Web, accédez à Home
Rechercher. - Choisissez un projet dans la liste Projet:
- Choisissez CatalogSource dans la liste Ressources.
- Choisissez le menu Options du catalogue que vous souhaitez supprimer, puis cliquez sur Supprimer CatalogSource.