Documentation de référence sur CRD

Vous pouvez effectuer tous les aspects d'une migration en modifiant et en appliquant des objets CRD au lieu de migctl. Cette section présente le format des CRD utilisés par Migrate to Containers.

Migration CRD

Appliquez un fichier .yaml "Migration" pour créer une ressource de migration. Dans un fichier .yaml "Migration", source-provider-name est le nom d'un fichier .yaml SourceProvider créé précédemment.

L'application d'un fichier .yaml de migration génère un fichier .yaml WebSphereGenerateArtifactsFlow. Vous pouvez ensuite modifier ce fichier .yaml avant d'exécuter la migration.

Le fichier .yaml "Migration" présente le format suivant :

apiVersion: anthos-migrate.cloud.google.com/v1beta2
kind: Migration
metadata:
  name: migration-name
  namespace: v2k-system
  annotations:
    # The only supported Intent for a WAS VM is Image.
    anthos-migrate.cloud.google.com/initial-intent: Image
spec:
  osType: "Linux"
  appType: websphere-traditional
  sourceSnapshot:
    sourceProvider: "source-provider-name"
    sourceId: "vm-id"

CRD WebSphereGenerateArtifacts

L'application d'un fichier .yaml de migration crée une ressource de migration et un fichier .yaml WebSphereGenerateArtifactsFlow. Vous devez examiner et mettre à jour le fichier .yaml WebSphereGenerateArtifactsFlow avant de procéder à la migration.

Le fichier .yaml WebSphereGenerateArtifactsFlow se présente au format suivant :

apiVersion: anthos-migrate.cloud.google.com/v1beta2
kind: WebSphereGenerateArtifactsFlow
metadata:
  name: websphere-generate-artifacts-flow-id
  namespace: v2k-system
  annotations:
    anthos-migrate.cloud.google.com/always-retake-snapshot: "false"
  ownerReferences:
  - apiVersion: anthos-migrate.cloud.google.com/v1beta2
    blockOwnerDeletion: true
    controller: true
    kind: Migration
    name: migration-name
    uid: id

spec:
  appBinariesMigrationToolkit:
    applications:
      path: "string1"
      # List of shared libraries for the app as discovered by Migrate to Containers.
      sharedLibraries:
      - sharedLibrary1
        sharedLibrary2
      path: "string2"
      sharedLibraries:
      - sharedLibrary1
  ibmMigrationToolkitForAppBinariesGcsPath: binaryAppScanner.jar
  # See description of includeSensitiveData below.
  includeSensitiveData: true | false

  #  WAS traditional migrations do not support the "ImageAndData" or "Data" intent.
  intent: "Image"

  image:
    # imageRepository is optional.
    imageRepository:
      name: name of image repo spec
    base: "string"
    name: "image_name"

  deployment:
    appName: app-name
      # artifactsRepository is optional.
      artifactsRepository:
    name:
      spec:
        bucket: bucket_name
        credentials:
          type: gcs
          secret: secret
    folder: storage-folder-name/

Où :

  • La valeur du champ image définit le nom et l'emplacement des images créées à partir d'une VM migrée. Par défaut, un tag correspondant à l'horodatage de la migration est automatiquement appliqué à la valeur "image_name". Ce tag se présente au format suivant :

    MM-DD-YYYY--hh:mm:ss

    Vous pouvez utiliser l'horodatage pour différencier les migrations. Vous pouvez également appliquer votre propre tag. Modifiez l'objet CRD et ajoutez le tag comme indiqué ci-dessous :

    name: "image_name:app1"

  • Le champ deployment spécifie le nom de l'application utilisée dans le fichier deployment_spec.yaml. Définissez ce champ sur une valeur unique pour chaque application de la CRD. Vous devez veiller à déployer chaque conteneur d'applications avec son propre nom unique d'application.

  • Le fichier includeSensitiveData configure la façon dont une migration gère un mot de passe d'application. Si l'application est configurée pour utiliser un mot de passe, définissez cette propriété :

    • Si la valeur est false, le script .py utilisé pour créer l'application fait référence à une variable contenant le mot de passe. Il vous incombe de configurer correctement la variable avant d'exécuter le script de compilation.

    • Si la valeur est true (valeur par défaut), intégrez le mot de passe en texte brut dans le script de compilation .py de l'application.

CRD WebSphereGenerateArtifactsTask

Appliquer un fichier .yaml "WebSphereGenerateArtifactsTask" pour exécuter une migration. Vous devez spécifier le nom du fichier .yaml Migration utilisé pour générer le fichier .yaml WebSphereGenerateArtifactsFlow pour exécuter la migration.

Le fichier .yaml WebSphereGenerateArtifactsFlow a le format suivant :

apiVersion: anthos-migrate.cloud.google.com/v1beta2
kind: WebSphereGenerateArtifactsTask
metadata:
  name: task-name
  namespace: v2k-system
spec:
  migration:
    name: migration-name

Définissez la valeur du champ migration.name sur le nom spécifié dans le fichier .yaml Migration lors de la création de la migration.