Migrate to Containers CLI release notes
This page documents production updates to Migrate to Containers CLI. You can periodically check this page for announcements about new or updated features, bug fixes, known issues, and deprecated functionality.
October 8, 2024
On October 8, 2024, we released version 1.2.3 of Migrate to Containers CLI, and version 1.4.2 of the Migrate to Containers modernization plugins.
Features
Added the ability to run the Migrate to Containers CLI in PowerShell Core (
pwsh.exe
).All plugins use DNS-1123 for the deployment names, to be compatible with Kubernetes.
Enhanced security for Windows IIS migration using a temporary user with automatic expiry and randomized password.
New features for WebSphere application modernization:
- Added documentation of the WebSphere migration plan fields for Visual Studio Code autocomplete.
- Shortened the time required to perform a WebSphere application modernization.
Bug fixes
- Fixed a bug related to CVE-2024-9858.
- Fixed a bug that prevented from setting the authentication method in the migration plan for Windows IIS applications.
January 03, 2024
On January 03, 2024, we released version 1.4.1 of the Migrate to Containers modernization plugins which includes bug fixes for Tomcat migrations.
December 04, 2023
On December 04, 2023, we released Migrate to Containers CLI version 1.2.2.
Deprecated
The websphere-traditional
plugin is now deprecated. For
existing customers, this plugin is still supported till December 2023, after
which it will no longer be available. If you're new to WebSphere workload
modernization, then use the websphere-container
plugin with the
Migrate to Containers CLI instead.
November 02, 2023
On November 02, 2023, we released Migrate to Containers CLI version 1.2.1 which includes bug fixes.
October 30, 2023
On October 30, 2023, we released Migrate to Containers CLI version 1.2.0.
Features
Added support for migrating Linux applications offline
The Migrate to Containers CLI now supports working with no connection to the internet using the new offline mode. The offline mode lets you migrate Linux applications in an offline environment.
This is beneficial if your local environment, which includes the local and source machines and the deployment cluster, is located in a secured network that requires pre-approval and security scanning for downloading external files and binaries. With the offline mode, we've simplified the process of receiving software updates from external sources into a secured network by adding files bundling and unbundling options. In addition, you can specify a local and secured registry as source for artifacts required for the migrated application.
To set up for offline migrations, after you've downloaded Migrate to Containers CLI, perform the following steps:
Download the offline Migrate to Containers CLI plugins bundle:
curl -O https://storage.googleapis.com/modernize-plugins-prod/$(curl -s https://storage.googleapis.com/modernize-plugins-prod/latest)/m2c-offline-bundle-linux.tar
If required, copy the Migrate to Containers CLI and offline Migrate to Containers CLI plugins bundle to the offline environment.
Unpack the offline Migrate to Containers CLI plugins bundle:
./m2c plugins unpack -i m2c-offline-bundle-linux.tar
To add support for offline data migration, specify a container registry that is available in your local network:
./m2c plugins unpack -i m2c-offline-bundle-linux.tar --registry HOSTNAME
Replace HOSTNAME with the container registry hostname.
For more information, see Set up for offline migration.
August 22, 2023
On August 22, 2023, we released Migrate to Containers CLI version 1.1.0.
Features
Added support for Windows IIS services migration
The Migrate to Containers CLI now supports Windows IIS services migration. Migrating Windows IIS services requires running the Migrate to Containers CLI on a Windows machine.
To modernize Windows IIS services, follow these steps:
Export the source VM disk images to VHD files.
For example, to export an image from Compute Engine, first export the image to Cloud Storage, and then download the image on your local machine:
gcloud compute images export \ --export-format vhdx \ --destination-uri DESTINATION_URI \ --image IMAGE_NAME gcloud storage cp DESTINATION_URI LOCAL_PATH
Analyze the disk images to create a migration plan:
./m2c analyze \ -s PATH_TO_IMAGE \ -p windows-iis-container \ -o ANALYSIS_OUTPUT_PATH
Generate migration artifacts from the disk images and migration plan:
./m2c generate \ -i ANALYSIS_PATH \ -o OUTPUT_ARTIFACTS_PATH
Enhanced support for IBM WebSphere applications migration
IBM WebSphere support has been modified and expanded. The existing plugin supports WebSphere Application Server traditional as a migration source. A new plugin has been added to support WebSphere Application Server Liberty as a migration source.
Changes in IBM WebSphere Application Server traditional migration
The following changes have been made to the IBM WebSphere Application Server traditional migration:
- The
websphere-traditional-container
plugin is now used for migrating IBM WebSphere Application Server traditional workloads. - Added support for WebSphere Application Server Liberty as a target.
- The
was-home
parameter is now mandatory, even if you scan the source VM using mFit.
To migrate a IBM WebSphere Application Server traditional workload, run the following command:
./m2c analyze \ -s PATH_TO_COPIED_FILESYSTEM \ -p websphere-traditional-container -o ANALYSIS_OUTPUT_PATH \ -r was-home=PATH_TO_WAS_HOME \ --volume PATH_TO_BINARYAPPSCANNER:/binaryAppScanner.jar
For more information, see Create a migration plan for WebSphere traditional workloads.
Added support for IBM WebSphere Application Server Liberty migration
Modernization of WebSphere Application Server Liberty is now
generally available with the websphere-container
plugin.
To migrate IBM WebSphere Liberty workload, run the following command:
./m2c analyze \ -s PATH_TO_COPIED_FILESYSTEM \ -p websphere-container \ -o ANALYSIS_OUTPUT_PATH \ -r websphere-home=WEBSPHERE_HOME \ -r websphere-java-home=WEBSPHERE_JAVA_HOME -r target-base-image=TARGET_BASE_IMAGE
For more information, see Create a migration plan for WebSphere Application Server Liberty workloads.
Updated the Tomcat plugin
The discovery parameters for the Tomcat plugin have been updated.
- The
java-version
parameter is now added as input to Tomcat migrations. - The
catalina-base
parameter can now include multiple directories delimited with colons (:
). - The
java-version
,catalina-base
andcatalina-home
parameters are now required, even if you scan the source VM using mFit.
For more information, see Create a migration plan for Tomcat workloads.
Updated the Linux system container plugin
Linux system service endpoints are no longer automatically discovered and must be manually specified while customizing the Linux migration plan, even if you scan the source VM using mFit.
Fixed
In the earlier versions of Migrate to Containers CLI, the copy
command could fail
when trying to use a socket in the /tmp
directory, which is automatically
deleted in some systems. In this version, the defaults have changed, and to
customize the socket location, you can set the SOCKDIR
environment variable.
Issues
Skaffold build for Windows images might fail on a Windows machine because Skaffold tries to pull the base image for the wrong target.
As a workaround for this issue, pull the image manually with the
docker pull
command, and run the Skaffold build again.The deployment of Windows IIS workloads might be marked as not ready due to short timeouts. If you're deploying your workloads using Skaffold, then the deployment might show as failed.
As a workaround for this issue, increase the readiness probe timeout and period using PowerShell:
foreach ($file in (Get-ChildItem . -Recurse -Include "deployment_spec.yaml")) { (Get-Content $file).replace("periodSeconds: 10", "periodSe conds: 30").replace("timeoutSeconds: 1", "timeoutSeconds: 10") | Set-Content $file }
June 27, 2023
On June 27, 2023, we released Migrate to Containers CLI version 1.0.0.
Features
Upgraded Skaffold API version
Migrate to Containers CLI now generates the Skaffold configuration with the
Skaffold API version v4beta4
instead of version v2beta25
.
Added support for Linux VM containerization
Migrate to Containers CLI now lets you migrate Linux VMs to system containers. It discovers the source application files and processes them to generate migration artifacts, which include a Dockerfile, Kubernetes manifest, and automated deployment scripts based on Skaffold.
Migrate to Containers CLI uses a prebuilt Linux system container which functions as a boot loader for the services required by the modernized application. With Migrate to Containers CLI, you can modernize a wide range of stateless Linux-based applications to run on GKE, Cloud Run, or GKE Enterprise clusters.
For more information, see Create a migration plan for a Linux VM container.
Enhanced the copy
operation
The following improvements to the copy
operation are now available:
The Migrate to Containers CLI
copy
operation now uses a local container to copy the source VM file system into a local directory instead of using a local tar file. This enhancement eliminates the need to installrsync
on your local machine and reduces the disk space required for copying the source machine's file system.In case of failures, Migrate to Containers CLI now continues the copy process from the point of failure.
For more information, see Copy the source machine's file system.
Added the ability to clean up the copied file system
After your migration is complete, you can use the new cleanup
command to
remove the copy of the source machine's file system that you created with the
copy
command on your local machine without facing any permission issues.
For more information, see Clean up your local machine.
Added support for data migration
After executing a migration, you can now copy data directories into a new or an
existing persistent volume claim (PVC) on the target cluster with the new
migrate-data
command.
This step is required in cases where you might need to migrate persistent data directories from the source VM to persistent volumes mounted on the target container.
For more information, see Migrate data.
June 13, 2023
On June 13, 2023, we announced that Migrate to Containers CLI is now generally available.
The Migrate to Containers CLI lets you modernize application components running on VMs to containers running on GKE, GKE Autopilot, Cloud Run, or GKE Enterprise clusters.
For more information , see Shift your applications to container-based workloads on the command-line | Google Cloud Blog.
May 2, 2023
On May 2, 2023 we released Migrate to Containers CLI version 0.2.0 in preview. The Migrate to Containers CLI lets you modernize application components running on VMs to containers running on GKE, GKE Autopilot, Cloud Run, or GKE Enterprise clusters. The tool offers a simplified flow which is comprised of 4 main steps:
- Copy application files from a source VM using SSH or gcloud CLI.
- Analyze the local copy of the application files to generate a migration plan.
- Edit the migration plan files to customize the migration plan.
- Generate artifacts required as container image, deployment YAML, and Skaffold configuration file.
For more information, see About Migrate to Containers | Google Cloud.
Features
Copy source application files
Copy your application files from a remote VM on-premises using SSH, or from a VM running on Google Cloud using gcloud CLI.
Analyze application files for modernization changes
Analyze application binaries and configuration files, and generate migration plan file report and migration plan using parameters extracted from the copied files.
Generate application artifacts to run as a container
Generate artifacts that you require to run the application as a container with a Skaffold configuration file which lets you automate the deployment of the generated artifacts on your target cluster.
Supported modernization flows
With the new Migrate to Containers CLI, you can work on your application modernization at your local environment and deploy the generated artifacts directly on a local or remote cluster.
The Migrate to Containers CLI supports the following modernization flows:
- Tomcat application to container that uses a community base image
- Apache application to container that uses a community base image
- IBM JBoss application to container that uses a community WildFly base image
- IBM Websphere Application Server traditional to container that uses an IBM WebSphere Application Server traditional image
- IBM Websphere Application Server traditional to container that uses a Open Liberty container image