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