5.16. Migration des projets de manifestes de paquets vers le format bundle
La prise en charge de l'ancienne version de package manifest format pour les opérateurs est supprimée dans OpenShift Container Platform 4.8 et les versions ultérieures. Si vous avez un projet Operator qui a été initialement créé à l'aide du format package manifest, vous pouvez utiliser le SDK Operator pour migrer le projet vers le format bundle. Le format bundle est le format d'emballage préféré pour Operator Lifecycle Manager (OLM) à partir d'OpenShift Container Platform 4.6.
5.16.1. À propos de la migration des formats d'emballage
La commande Operator SDK pkgman-to-bundle
permet de migrer les manifestes de paquets d'Operator Lifecycle Manager (OLM) vers des paquets. La commande prend un répertoire de manifestes de paquets en entrée et génère des bundles pour chacune des versions de manifestes présentes dans le répertoire d'entrée. Vous pouvez également créer des images de bundle pour chacun des bundles générés.
Par exemple, considérons le répertoire packagemanifests/
suivant pour un projet au format "package manifest" :
Exemple de format de manifeste de paquet
packagemanifests/ └── etcd ├── 0.0.1 │ ├── etcdcluster.crd.yaml │ └── etcdoperator.clusterserviceversion.yaml ├── 0.0.2 │ ├── etcdbackup.crd.yaml │ ├── etcdcluster.crd.yaml │ ├── etcdoperator.v0.0.2.clusterserviceversion.yaml │ └── etcdrestore.crd.yaml └── etcd.package.yaml
Après avoir exécuté la migration, les bundles suivants sont générés dans le répertoire bundle/
:
Exemple de présentation du format de la liasse
bundle/ ├── bundle-0.0.1 │ ├── bundle.Dockerfile │ ├── manifests │ │ ├── etcdcluster.crd.yaml │ │ ├── etcdoperator.clusterserviceversion.yaml │ ├── metadata │ │ └── annotations.yaml │ └── tests │ └── scorecard │ └── config.yaml └── bundle-0.0.2 ├── bundle.Dockerfile ├── manifests │ ├── etcdbackup.crd.yaml │ ├── etcdcluster.crd.yaml │ ├── etcdoperator.v0.0.2.clusterserviceversion.yaml │ ├── etcdrestore.crd.yaml ├── metadata │ └── annotations.yaml └── tests └── scorecard └── config.yaml
Sur la base de cette présentation générée, les images des deux liasses sont également créées avec les noms suivants :
-
quay.io/example/etcd:0.0.1
-
quay.io/example/etcd:0.0.2
Ressources supplémentaires
5.16.2. Migration d'un projet de manifeste de paquetage au format bundle
Les auteurs d'opérateurs peuvent utiliser le SDK Operator pour migrer un projet Operator au format manifeste de paquetage vers un projet au format bundle.
Conditions préalables
- Operator SDK CLI installé
- Projet d'opérateur initialement généré à l'aide de l'Operator SDK dans le format du manifeste de paquetage
Procédure
Utilisez le SDK Operator pour migrer votre projet de manifeste de paquetage vers le format de paquetage et générer des images de paquetage :
$ operator-sdk pkgman-to-bundle <package_manifests_dir> \ 1 [--output-dir <directory>] \ 2 --image-tag-base <image_name_base> 3
- 1
- Indiquez l'emplacement du répertoire des manifestes du projet, par exemple
packagemanifests/
oumanifests/
. - 2
- Facultatif : Par défaut, les paquets générés sont écrits localement sur le disque dans le répertoire
bundle/
. Vous pouvez utiliser l'option--output-dir
pour spécifier un autre emplacement. - 3
- Définissez l'indicateur
--image-tag-base
pour fournir la base du nom de l'image, par exemplequay.io/example/etcd
, qui sera utilisée pour les paquets. Fournissez le nom sans balise, car la balise des images sera définie en fonction de la version de l'offre groupée. Par exemple, les noms des images de l'offre groupée complète sont générés au format<image_name_base>:<bundle_version>
.
Vérification
Vérifiez que l'image générée s'exécute correctement :
$ operator-sdk run bundle <bundle_image_name>:<tag>
Exemple de sortie
INFO[0025] Successfully created registry pod: quay-io-my-etcd-0-9-4 INFO[0025] Created CatalogSource: etcd-catalog INFO[0026] OperatorGroup "operator-sdk-og" created INFO[0026] Created Subscription: etcdoperator-v0-9-4-sub INFO[0031] Approved InstallPlan install-5t58z for the Subscription: etcdoperator-v0-9-4-sub INFO[0031] Waiting for ClusterServiceVersion "default/etcdoperator.v0.9.4" to reach 'Succeeded' phase INFO[0032] Waiting for ClusterServiceVersion "default/etcdoperator.v0.9.4" to appear INFO[0048] Found ClusterServiceVersion "default/etcdoperator.v0.9.4" phase: Pending INFO[0049] Found ClusterServiceVersion "default/etcdoperator.v0.9.4" phase: Installing INFO[0064] Found ClusterServiceVersion "default/etcdoperator.v0.9.4" phase: Succeeded INFO[0065] OLM has successfully installed "etcdoperator.v0.9.4"