SeamlessMigrate
NouveauCharges GPU et bascule réseau, en Technology Preview dans 0.4.0-rc.1

Migration open source de VM : VMware et OpenStack vers RHOSO 18.0 ou OpenStack communautaire. Gardez vos VM en service.
Basculez en quelques minutes.

Seamless Migrate migre les VM de RHOSP 17.1, d’OpenStack et de VMware vSphere vers RHOSO 18.0 ou OpenStack communautaire. Les disques sont copiés pendant que la VM reste en service ; elle ne s’arrête que pour le delta final.

Apache 2.0 La démo ne demande aucun identifiant cloud

TEMPS D’ARRÊT

Une VM, trois façons de la migrer.

Un volume de 200 GiB dont 120 GiB utilisés, 2 MiB/s d’écritures côté invité, sur un lien à 125 MiB/s. Le plan de contrôle estime, avec son modèle de planification, le temps d’arrêt de chaque stratégie :

  • Copie à froid cold

    20 min 53 s d’arrêt

    La VM reste arrêtée pendant toute la copie de ses données utilisées.

  • Migration warm warm

    11 min 20 s d’arrêt

    3 passes de copie s’exécutent pendant que la VM reste en service (31 min 32 s) ; elle ne s’arrête que pour le delta final.

  • Transfert du stockage storage_handover

    4 min 20 s d’arrêt

    Aucune donnée n’est copiée : sur un stockage Ceph ou NetApp ONTAP partagé, Cinder passe la gestion de chaque volume à la destination.

PLATEFORMES

Plusieurs origines. Votre destination.

Un même modèle de plans, de vagues et d’approbations pour toutes les sources. Seamless dialogue avec chaque cloud via ses API publiques et s’appuie sur la collection Ansible os-migrate pour déplacer les données.

  • Red Hat OpenStack Platform 17.1

    La dernière version basée sur TripleO. Migrez en parallèle quand l’adoption sur place ne convient pas.

    • cold
    • warm
    • storage_handover
  • OpenStack communautaire et Kolla-Ansible

    Toute version avec Keystone v3, Nova 2.60 ou ultérieure, Cinder v3 et Neutron v2.

    • cold
    • warm
    • storage_handover
  • VMware vSphere 7.0U3 et 8.x

    Géré par vCenter. Migration warm avec Changed Block Tracking, conversion par virt-v2v.

    • vmware_cold
    • vmware_warm

Destinations

  • RHOSO 18.0

    Red Hat OpenStack Services on OpenShift, la plateforme cible ; la validation du candidat en laboratoire reste à effectuer. Seamless utilise ses API OpenStack publiques et ne touche jamais aux ressources OpenShift.

  • OpenStack communautaire

    Toutes les séries de versions de 2023.1 Antelope à 2026.2 Hibiscus, déployées avec Kolla-Ansible, OpenStack-Ansible ou tout autre outil, par le même chemin de code. La vérification des fournisseurs indique la série, le niveau de support et le profil de politique du cloud.

  • Réseaux, sous-réseaux, routeurs et groupes de sécurité recréés
  • Flavors, images, paires de clés, projets et utilisateurs repris
  • MTU vérifiée par rapport aux réseaux de la destination, y compris Geneve sur ML2/OVN
  • TLS vérifié par défaut sur chaque point de terminaison

Tous les OS invités courants

Depuis OpenStack, les invités passent de KVM à KVM, donc tout ce qui démarre sur la source démarre sur la destination : RHEL, CentOS, Rocky, AlmaLinux, Oracle Linux, Ubuntu, Debian, SLES et Windows. Depuis VMware, virt-v2v convertit l’invité sur l’hôte de conversion RHEL 9. Les anciennes versions reçoivent un avertissement avec la correction, jamais un blocage silencieux.

STRATÉGIES

Cinq stratégies, un choix par VM.

Seamless estime chaque stratégie éligible pour chaque VM et retient celle qui offre le temps d’arrêt le plus court ; en cas d’égalité, la plus simple l’emporte. Vous pouvez modifier ce choix.

Depuis OpenStack

  • cold

    Copie à froid

    Arrêt, copie des données utilisées via SSH, démarrage sur la destination.

  • warm

    Warm

    Passes d’instantanés pendant que la VM fonctionne, puis seul le delta final après l’arrêt.

  • storage_handover

    Transfert du stockage

    Cinder unmanage côté source, manage côté destination. Aucune donnée n’est copiée.

    Prérequis : Les deux clouds sur le même cluster Ceph ou la même SVM NetApp ONTAP.

Depuis VMware

  • vmware_cold

    VMware à froid

    Copie complète, puis conversion avec virt-v2v.

  • vmware_warm

    VMware warm

    Passes par Changed Block Tracking, puis le delta final et une conversion sur place.

    Prérequis : Changed Block Tracking activé sur la VM.

TECHNOLOGY PREVIEWS

Les VM à GPU migrent. Leurs adresses peuvent suivre.

Version candidate, sans certification de production. Aucun essai de laboratoire de la version n’est encore enregistré. Nouveau dans 0.4.0-rc.1, chacun activable par plan et validé en simulation : les deux tournent dans la démo, mais leurs tests en laboratoire sur des hôtes GPU et de vrais clouds n’ont pas encore eu lieu. L’étiquette disparaîtra une fois ces tests réussis.

  • Charges de travail GPU

    Technology Preview, validée en simulation

    Les VM dotées d’un vGPU NVIDIA, en time-slicing ou adossé à MIG, ou d’un GPU passé en entier en passthrough migrent au lieu d’être bloquées. Leurs disques se déplacent comme ceux de toute VM ; aucun état GPU n’est transféré, et la VM démarre sur la destination comme après un arrêt.

    • GPU lus dans le flavor OpenStack ou dans vCenter, et affichés dans l’inventaire
    • Chaque GPU associé par le plan à un flavor GPU de la destination, jamais rapproché par taille ou par nom ; une VM GPU sans association reste bloquée
    • Capacité libre lue dans Placement à la validation, puis de nouveau avant l’arrêt de la source ; tant que le pool est plein, la source continue de tourner
    • La vérification contrôle le flavor GPU et son allocation Placement, et les constats nomment le pilote et le serveur de licences dont l’invité a besoin
  • Bascule réseau

    Technology Preview, validée en simulation

    Une migration peut emporter l’identité réseau de la VM. Chaque volet s’active par plan, et un plan qui ne l’active pas migre comme avant.

    • Hooks : playbooks Ansible et webhooks HTTPS enregistrés par un administrateur, exécutés à pre_stop, post_create, post_verify, on_rollback et on_finalize, chacun avec un délai maximal et une annulation facultative
    • Des floating IP qui gardent leur adresse avec toutes les stratégies OpenStack, déplacées après l’arrêt de la source et rendues lors d’un retour arrière
    • Un basculement DNS dans Designate ou sur un serveur RFC 2136, par compare-and-swap, rétabli lors d’un retour arrière
    • Une attente d’accessibilité comptée dans l’interruption, et un assistant Octavia qui vide le membre source puis ajoute la VM migrée

Les contrôles préalables signalent ce qui reste à la charge de l’exploitation, avec des procédures : stacks Heat et groupes d’autoscaling, pools Octavia que les vagues scinderaient, ports avec des address pairs, et noms DNS que la destination ne peut pas publier.

Prochaine étape : 0.5.0

Prévu : des notifications par e-mail, Slack et webhooks signés ; l’épinglage des clés d’hôte SSH sur le chemin des données ; et, en Technology Preview, un plan de contrôle haute disponibilité, des identifiants par tenant et le suivi des extents modifiés, qui supprime le scan des disques de la dernière passe warm sur les volumes Ceph RBD.

Notes de version de 0.4.0-rc.1 (s’ouvre dans un nouvel onglet)

FONCTIONNEMENT

Un seul parcours. Chaque étape entre vos mains.

Un même workflow pour toutes les sources. Chaque migration suit une machine à états explicite, repart de son point de reprise si le plan de contrôle redémarre et consigne chaque action dans une piste d’audit.

  1. 01

    Connecter les deux clouds

    Ajoutez RHOSP 17.1, OpenStack communautaire, Kolla-Ansible ou vCenter comme source et RHOSO 18.0 ou un cloud OpenStack communautaire comme destination, avec un préréglage par plateforme. Les identifiants sont en écriture seule : ils vont dans le magasin de secrets de la plateforme, jamais dans la base de données ni dans une réponse d’API. Un clic teste chaque connexion et ses capacités, et indique la série de versions, le niveau de support et le profil de politique d’une destination.

  2. 02

    Planifier les vagues, pilote d’abord

    Lancez la découverte de l’inventaire, avec disques, cartes réseau, OS invités et indicateurs de préparation. Sélectionnez les VM, mappez réseaux, flavors, types de volume et projets, et laissez le planificateur ordonner les vagues par niveau de risque, en commençant par un petit pilote. Une vague ne démarre que lorsque la précédente est terminée.

  3. 03

    Valider avant tout déplacement

    Les contrôles préalables signalent blocages, avertissements et informations, chacun avec sa correction. Chaque VM reçoit une estimation pour chaque stratégie éligible et un choix automatique que vous pouvez modifier.

  4. 04

    Copier pendant que les VM fonctionnent

    Les VM en mode warm sont copiées par passes d’instantanés pendant qu’elles restent en service. Après la première passe, seuls les blocs dont l’empreinte BLAKE2b a changé transitent sur le réseau, et chaque passe se termine par une empreinte de manifeste vérifiée. Une VM convergée attend sa fenêtre, tenue à jour par des synchronisations keep-warm.

  5. 05

    Basculer dans la fenêtre

    Une bascule ne démarre qu’avec l’approbation d’un second approbateur, dans la fenêtre de changement et avec un créneau de bascule libre. La VM s’arrête, le delta final est synchronisé, puis elle démarre sur la destination. Le temps d’arrêt est mesuré de l’arrêt de la VM à son démarrage vérifié.

  6. 06

    Vérifier, puis finaliser

    Seamless contrôle l’état ACTIVE du serveur, ses ports, des sondes TCP et des motifs de console. Un contrôle en échec déclenche automatiquement le retour arrière : l’instance de destination est supprimée, ses volumes sont conservés et la VM source redémarre. La finalisation, seule étape irréversible, exige un approbateur et la saisie du nom complet de la VM.

TABLEAU DE BORD

Chaque migration, en pleine lumière.

Le tableau de bord est livré avec le plan de contrôle : plans et vagues, chaque horloge de temps d’arrêt face à son SLO, approbations et journal d’audit, mis à jour en direct par server-sent events. Voici ses vrais écrans, capturés dans la démo avec des clouds simulés.

seamless.internal/

Ouvrir en taille réelle (s’ouvre dans un nouvel onglet)
La page Overview : tuiles KPI, trois VM arrêtées avec leur horloge de temps d’arrêt face à un SLO de 15 minutes, et quatre approbations en attente.

Tout le déploiement d’un coup d’œil

Les migrations par état, le temps d’arrêt moyen et le respect du SLO, chaque VM arrêtée en ce moment avec son horloge, et les approbations qui attendent une personne : approbations de bascule et décisions du conseiller, chacune reliée à l’endroit où elle se décide.

En direct, sans interrogation
Changements de phase, passes, approbations et événements arrivent par server-sent events. Après une coupure, le tableau de bord reprend au dernier événement reçu.
Dit pourquoi, jamais juste non
Quatre rôles, de viewer à admin. Une action que vous ne pouvez pas faire maintenant reste à l’écran et dit ce qu’elle attend : un rôle, une approbation, une fenêtre, une phase.
WCAG 2.2 AA
Clavier d’abord, progression et résultats annoncés aux lecteurs d’écran, cibles de 44 px, mouvement réduit respecté, aucun état transmis par la couleur seule.
Rien depuis un autre hôte
Polices et scripts sont livrés avec le plan de contrôle et rien ne se charge depuis un tiers : une installation isolée du réseau s’affiche à l’identique.

GARDE-FOUS

Réversible jusqu’à votre décision finale

Approbations, fenêtres et retours arrière sont des règles du plan de contrôle, pas des conventions dans un runbook. La VM source reste en place jusqu’à ce qu’un approbateur finalise.

Des verrous imposés par le plan de contrôle
Une bascule ne démarre que si l’approbation, la fenêtre de changement et un créneau de bascule libre sont tous réunis.
Principe des quatre yeux
Qui demande ou force une bascule ne peut pas l’approuver : un second approbateur doit le faire.
Retour arrière jusqu’à la finalisation
Le retour arrière supprime l’instance de destination, conserve ses volumes, rend l’adresse de floating IP ou l’enregistrement DNS que la bascule avait déplacés, et redémarre la VM source. Une vérification en échec le déclenche automatiquement.
Confirmation par saisie pour l’étape irréversible
Rien ne supprime les données source avant la finalisation, qui exige un approbateur et la saisie du nom complet de la VM.
Reprise après un redémarrage
Les migrations en cours repartent de leur point de reprise quand le plan de contrôle redémarre. Un arrêt planifié peut commencer par un drainage : les plans se mettent en pause et les bascules en cours s’achèvent avant que quoi que ce soit ne s’arrête.
Pas de source à l’abandon
Chaque étape a une durée maximale : un playbook bloqué ne laisse jamais une VM à l’arrêt.
Chaque action tracée
Chaque appel en écriture est audité. Exportez la piste d’audit ou purgez-la selon votre politique de conservation.

DÉPLOIEMENT

Chez vous, dans votre infrastructure.

Une image de conteneur et PostgreSQL. Déployez Seamless sur le cluster OpenShift à côté de RHOSO, sur tout cluster Kubernetes ou sur un hôte unique : le Docker Engine natif d’un serveur Linux, Colima sur un Mac ou Podman.

  • Linux

    Docker Engine 20.10+ avec Compose v2.20+ : Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux, Fedora

    $ scripts/compose-init.sh$ make seamless-up$ curl -fsS http://127.0.0.1:8080/api/v1/health$ ssh -L 8080:127.0.0.1:8080 you@your-server

    Le Docker Engine du serveur lui-même, sans Colima ni Node.js : l’image construit elle-même le tableau de bord. Le plan de contrôle n’écoute que sur 127.0.0.1:8080, donc aucun port n’est ouvert dans le pare-feu et le tableau de bord est accessible par un tunnel SSH ; les conteneurs reviennent après un redémarrage, et SELinux peut rester en mode enforcing.

  • macOS

    Colima, ou Docker Desktop avec un contexte nommé

    $ make seamless-colima-up$ scripts/compose-init.sh$ make seamless-up$ make seamless-logs

    Un profil Colima dédié (4 CPU, 6 GiB, 40 GiB) qui ne modifie jamais votre contexte Docker actif. Docker Desktop ou tout autre contexte : ajoutez SEAMLESS_DOCKER_CONTEXT=desktop-linux à chaque make.

  • Podman

    4.7 ou ultérieure

    $ scripts/compose-init.sh$ make seamless-up SEAMLESS_ENGINE=podman$ make seamless-logs SEAMLESS_ENGINE=podman

    podman compose pilote la même pile, avec docker-compose comme fournisseur s’il est installé. Sur les hôtes SELinux, le montage du jeton est réétiqueté automatiquement.

  • Kubernetes

    1.28 ou ultérieure : EKS, AKS, GKE, RKE2, k3s, kubeadm

    $ kubectl apply -k deploy/kubernetes$ kubectl -n seamless-migrate rollout status deploy/seamless$ kubectl -n seamless-migrate get ingress seamless

    Un overlay Kustomize des manifestes OpenShift, avec un Ingress. Créez d’abord les Secrets à partir de secret-example.yaml, ainsi que le secret TLS seamless-tls.

  • OpenShift

    4.16 ou ultérieure

    $ oc apply -k deploy/openshift$ oc -n seamless-migrate rollout status deploy/seamless$ oc -n seamless-migrate get route seamless

    PostgreSQL 16, un Deployment durci à réplica unique, une Route edge-TLS et des NetworkPolicies en refus par défaut. Les Secrets restent hors de la kustomization.

FAQ

Vos questions, nos réponses.

Les questions que se posent les équipes avant de migrer leur première VM.

Qu’est-ce que Seamless Migrate ?

Seamless Migrate est un plan de contrôle open source, sous Apache License 2.0, qui migre des machines virtuelles de Red Hat OpenStack Platform 17.1, d’OpenStack communautaire (y compris Kolla-Ansible) et de VMware vSphere vers Red Hat OpenStack Services on OpenShift (RHOSO) 18.0 ou un cloud OpenStack communautaire, de 2023.1 Antelope à 2026.2 Hibiscus. Il planifie les vagues, estime le temps d’arrêt de chaque VM, copie les disques pendant que les VM continuent de fonctionner, soumet chaque bascule à une approbation et à une fenêtre de changement, vérifie chaque VM sur la destination et déclenche automatiquement le retour arrière si un contrôle échoue.

Comment migrer des VM de VMware vSphere vers OpenStack ?

Ajoutez vCenter (vSphere 7.0U3 ou 8.x) comme source et RHOSO 18.0 ou un cloud OpenStack communautaire comme destination, puis planifiez les vagues et validez-les. Les VM avec Changed Block Tracking (CBT) migrent en mode warm : des passes CBT copient les disques pendant que la VM fonctionne, et à la bascule seul le delta final est copié avant une conversion virt-v2v sur place. Les VM sans CBT migrent à froid : copie complète, puis conversion. Les données transitent par le vmware-migration-kit d’os-migrate et un hôte de conversion équipé de VDDK dans le cloud de destination.

Puis-je migrer des charges de travail de RHOSP 17.1 vers RHOSO 18.0 sans adoption sur place ?

Oui. La procédure d’adoption de Red Hat convertit un déploiement 17.1 sur place. Quand elle ne convient pas, en raison d’un nouveau matériel, d’un nouveau backend de stockage, d’une refonte du réseau comme le passage de ML2/OVS à ML2/OVN, ou de plusieurs clouds à consolider, Seamless Migrate migre les charges de travail en parallèle : il recrée réseaux, groupes de sécurité, flavors, images, paires de clés, projets et utilisateurs sur RHOSO, puis migre chaque VM à froid, en mode warm ou par transfert du stockage.

Puis-je migrer vers un cloud OpenStack communautaire plutôt que vers RHOSO ?

Oui. Outre RHOSO 18.0, toutes les séries de versions d’OpenStack communautaire, de 2023.1 Antelope à 2026.2 Hibiscus, peuvent servir de destination, qu’elles aient été déployées avec Kolla-Ansible, OpenStack-Ansible ou un autre outil : enregistrez le cloud avec le préréglage OpenStack Community ou Kolla-Ansible, et les mêmes stratégies, copie à froid, warm et transfert du stockage, s’y appliquent. La vérification des fournisseurs indique la série de versions, le niveau de support et le profil de politique de chaque destination, et les contrôles préalables bloquent un plan dès qu’une capacité manque, avant tout déplacement. RHOSO 18.0 est aujourd’hui la plateforme cible ; la validation du candidat en laboratoire reste à effectuer ; la validation en laboratoire de chaque série communautaire maintenue upstream n’a pas encore eu lieu et précédera une version finale.

Quel temps d’arrêt prévoir pour une migration ?

Cela dépend de la stratégie et de la VM. Pour un volume de 200 GiB dont 120 GiB utilisés, 2 MiB/s d’écritures côté invité et un lien à 125 MiB/s, le modèle de planification estime 20 min 53 s pour une copie à froid, 11 min 20 s pour une migration warm et 4 min 20 s pour un transfert du stockage. En migration warm, le temps d’arrêt dépend du delta final et d’un scan du disque, pas de la copie complète.

Quelle différence entre migration à froid, migration warm et transfert du stockage ?

Une migration à froid arrête la VM et copie ses données utilisées, donc le temps d’arrêt augmente avec la taille du disque. Une migration warm copie les disques par passes d’instantanés pendant que la VM continue de fonctionner, et ne l’arrête que pour le delta final. Un transfert du stockage ne copie aucune donnée : quand les deux clouds partagent un cluster Ceph ou une SVM NetApp ONTAP, Cinder cesse de gérer chaque volume côté source (unmanage) et le prend en charge côté destination (manage), si bien que le temps d’arrêt reste de quelques minutes, quelle que soit la taille.

Peut-on migrer des VM dotées de GPU ?

Oui, en Technology Preview validée en simulation. Les VM dotées d’un vGPU NVIDIA, en time-slicing ou adossé à MIG, ou d’un GPU passé en entier en passthrough migrent dès que leur plan associe chaque GPU à un flavor GPU de la destination ; une VM GPU sans association reste bloquée. La validation confronte les GPU du plan à la capacité libre de la destination dans Placement, et la porte de bascule la relit avant l’arrêt de la source : faute de place, la migration attend et la source continue de tourner. Une VM VMware avec un GPU en passthrough ne migre qu’à froid, éteinte. Les tests en laboratoire sur des hôtes GPU n’ont pas encore eu lieu.

Les VM migrées gardent-elles leurs adresses IP et leurs noms DNS ?

Les IP fixes et les adresses MAC sont conservées par défaut. En Technology Preview validée en simulation, un plan peut aussi garder l’adresse de chaque floating IP, déplacée après l’arrêt de la source et rendue lors d’un retour arrière, et basculer un enregistrement DNS dans Designate ou sur un serveur RFC 2136 quand une adresse change. La vérification attend que chaque adresse déplacée réponde et compte cette attente dans l’interruption ; Seamless ne parle pas BGP lui-même. Les hooks enregistrés par un administrateur, playbooks Ansible ou webhooks HTTPS, couvrent le reste, et les contrôles préalables signalent ce qui reste à la charge de l’exploitation, comme les stacks Heat, les groupes d’autoscaling et les pools Octavia.

Puis-je revenir en arrière après une migration ?

Oui, tant que vous n’avez pas finalisé. Le retour arrière supprime l’instance de destination, conserve ses volumes et redémarre la VM source ; une vérification en échec le déclenche automatiquement. Rien ne supprime les données source avant la finalisation, qui exige un approbateur et la saisie du nom complet de la VM.

Quels systèmes d’exploitation invités peut-on migrer ?

Depuis OpenStack, les invités passent de KVM à KVM, donc tout ce qui démarre sur la source démarre sur la destination : RHEL 5 à 10, CentOS, Rocky, AlmaLinux, Oracle Linux, Ubuntu, Debian, SLES, openSUSE, Windows Server 2003 à 2025 et Windows 7 à 11. Depuis VMware, virt-v2v convertit l’invité : RHEL 7 à 10 et Windows Server 2016 à 2025 sont pris en charge par Red Hat ; les autres invités fonctionnent après une copie de test ou nécessitent d’installer d’abord les pilotes virtio.

Où s’exécute Seamless Migrate ?

Il se compose d’une image de conteneur et de PostgreSQL 16. Déployez-le sur OpenShift 4.16 ou ultérieure à côté de RHOSO, sur Kubernetes 1.28 ou ultérieure (EKS, AKS, GKE, RKE2, k3s, kubeadm), ou sur un hôte unique : le Docker Engine natif d’un serveur Linux, en version 20.10 ou ultérieure avec Compose v2.20 (Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux, Fedora ; sans Colima ni Node.js), un Mac avec Colima, ou Podman 4.7 ou ultérieure. Un seul script d’exploitation, seamless-ctl.sh, démarre et arrête un déploiement, le redémarre et le met à l’échelle de la même façon sur chaque plateforme, et draine les plans en cours avant un arrêt planifié. Une démo avec des clouds simulés tourne sur un ordinateur portable et ne demande aucun identifiant cloud.

Seamless Migrate est-il gratuit ?

Oui. Il est open source sous Apache License 2.0, et le code source est sur GitHub.

Seamless Migrate est-il un produit Red Hat ?

Non. C’est un projet open source indépendant : il n’est pas affilié à Red Hat, à l’OpenInfra Foundation ni à Broadcom, qui ne le parrainent ni ne le cautionnent, et aucune souscription Red Hat ne le couvre. Il s’appuie sur la collection Ansible upstream os-migrate, qui reste chargée de déplacer les données.

En quoi Seamless Migrate diffère-t-il d’os-migrate ?

os-migrate exporte et importe les ressources des tenants et copie les charges de travail à froid, la VM restant arrêtée pendant toute la copie. Seamless Migrate s’appuie dessus et y ajoute un mode warm pour les sources OpenStack, le transfert du stockage, l’orchestration warm pour VMware et un plan de contrôle avec plans, vagues, estimations du temps d’arrêt, approbations, vérification, retour arrière, tableau de bord, REST API et CLI.

PREMIERS PAS

De grandes possibilités.
D’abord, un petit pilote.

La démo exécute chaque phase, de la pré-copie jusqu’à la bascule, la vérification et le retour arrière, avec des clouds simulés sur votre ordinateur portable. Nul besoin d’OpenStack pour l’essayer.

Docker sur un serveur Linux, ou Colima sur un Mac

$ git clone https://github.com/imransetiadi/seamless-vms-migration$ cd seamless-vms-migration# macOS uniquement : inutile sous Linux$ make seamless-colima-up$ scripts/compose-init.sh# clouds simulés, toutes les phases$ make seamless-demo

Essayer la démo locale (s’ouvre dans un nouvel onglet)Connectez-vous sur /login avec le jeton d’administration affiché par compose-init.sh. Podman fonctionne aussi : SEAMLESS_ENGINE=podman.