Referência de CRD

É possível executar todos os aspectos de uma migração editando e aplicando CRDs em vez de usar migctl. Nesta seção, mostramos o formato das CRDs usadas pelo Migrate to Containers.

CRD Migration

Aplique um .yaml de migração para criar um recurso de migração. Em um .yaml de migração, source-provider-name é o nome de um .yaml SourceProvider criado anteriormente.

A aplicação de um .yaml de migração gera um WebSphereGenerateArtifactsFlow .yaml. Após fazer isso, será possível editar ou modificar esse arquivo .yaml.

O .yaml de migração tem o seguinte formato:

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"

WebSphereGenerateArtifactsFlow CRD

A aplicação de um .yaml de migração cria um recurso de migração e um WebSphereGenerateArtifactsFlow .yaml. Você precisa analisar e atualizar o .yaml WebSphereGenerateArtifactsFlow antes de fazer a migração.

O arquivo .yaml WebSphereGenerateArtifactsFlow tem o seguinte formato:

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/

Em que:

  • O valor do campo image define o nome e o local das imagens criadas a partir de uma VM migrada. Por padrão, uma tag correspondente ao carimbo de data/hora da migração é aplicada automaticamente ao valor "image_name". Essa tag está neste formato:

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

    É possível usar o carimbo de data/hora para diferenciar migrações. Também é possível aplicar sua própria tag. Edite o CRD e adicione a tag conforme mostrado abaixo:

    name: "image_name:app1"

  • O campo deployment especifica o nome do app usado no arquivo deployment_spec.yaml. Defina este campo como um valor exclusivo para cada app no CRD. Você precisa implantar cada contêiner de app com o próprio nome.

  • O includeSensitiveData configura como uma migração processa uma senha de app. Se o app estiver configurado para usar uma senha, defina esta propriedade:

    • Se false, o script .py usado para criar o app se refere a uma variável que contém a senha. Cabe a você configurar a variável corretamente antes de executar o script de compilação.

    • Se true (padrão), incorpore a senha em texto simples no script de compilação .py para o app.

WebSphereGenerateArtifactsTask CRD

Aplica um .yaml WebSphereGenerateArtifactsTask para executar uma migração. Você precisa especificar o nome do arquivo .yaml de migração usado para gerar o .yaml WebSphereGenerateArtifactsFlow para executar a migração.

O arquivo .yaml WebSphereGenerateArtifactsTask tem o seguinte formato:

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

Defina o valor do campo migration.name para migração com o nome especificado no .yaml Migration quando você tiver criado a migração.