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/ ou manifests/.
    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 exemple quay.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"

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.

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

© 2024 Red Hat, Inc.