VMWARE → STACKIT · COMPLETE GUIDE

The complete guide to migrating VMware to STACKIT

Export your VMs with RVTools, let StackToIT turn the export into a STACKIT target draft and an ordered plan, answer the values the export cannot hold, then build in this order: networks, images, servers and volumes, data, cutover. Each step below names the file of the package that holds the answer. The examples come from a small shop estate of four VMs, one template and three port groups, assessed on 4 November 2026.

The ten steps in order

The package StackToIT writes is a proposal that an architect reviews. Nothing in it runs by itself, and the tool never touches your VMware or STACKIT environment.

  1. 1. Export with RVTools

    Export the vInfo, vDisk and vNetwork sheets, as an .xlsx file or a directory of CSV files. The estate on this page used all three. RVTools itself needs read access to vCenter; StackToIT only reads the exported files and installs nothing in VMware.

  2. 2. Assess on your own computer

    Run stacktoit assess ./rvtools ./vmware-migration. Add --offline when the machine may not reach the network. If the input type is not detected, add --input rvtools.

  3. 3. Read the verdict

    The console prints classes and counts, the folder holds index.html, and execution/README.md says what can run now. Read the first blocker before anything else.

  4. 4. Answer what the export lacks

    RVTools exports no subnet masks and no machine types. Fill review/target-values.tfvars and run again on the same folder; the next run reads the answers.

  5. 5. Settle the critical settings

    Every unit carries settings the draft does not decide. Work packages group them by role: Network, Platform and Security Architect.

  6. 6. Build networks

    Port groups become STACKIT networks in the network and security wave of the migration plan. Servers keep their addresses on them.

  7. 7. Convert and upload disks

    Convert each boot disk to qcow2 or raw, upload it as an image, and put the image id into the server variable.

  8. 8. Apply Terraform in a test project

    Servers, interfaces and volumes come from the draft. Apply only when every step is executable as written.

  9. 9. Move data and cut over

    StackToIT never moves data. Copy second disks, switch traffic and verify, in steps you add to the plan.

  10. 10. Verify and retire

    Run stacktoit verify on the package, check the migrated estate, then retire the source on your schedule.

Steps 2 and 3: what the first run tells you

The console summary of the shop estate, and the network the draft writes for the web tier. Comment lines are left out of the Terraform.

StackToIT outputconsole.txt
StackToIT Assess
────────────────────────────────────────────
Source:                 rvtools
Source files:           1
Resources scanned:      8
Migration units:        8  (8 instances)
Unit dependencies:      5

STACKIT mapping
────────────────────────────────────────────
DIRECT              0  
RECONFIGURE         7  ██████████████████████████ 87%
REPLATFORM          1  ███ 12%
CONTAINERIZE        0  
REDESIGN            0  
MANUAL_REVIEW       0  
BLOCKED             0    (the mapping class BLOCKED, not the execution blockers, which Migration readiness counts)

Confidence  HIGH 0 · MEDIUM 8 · LOW 0
STACKIT Terraform by StackToITterraform/network.tf and variables.tf
resource "stackit_network" "network_PG_Shop_Web" {
  project_id       = var.project_id
  name             = "pg-shop-web"
  ipv4_prefix      = var.network_PG_Shop_Web_ipv4_prefix
  ipv4_nameservers = var.network_PG_Shop_Web_ipv4_nameservers
}

variable "network_PG_Shop_Web_ipv4_prefix" {
  type        = string
  description = "IPv4 prefix (CIDR) for the network replacing port group PG-Shop-Web. Addresses seen on it: 10.20.10.11, 10.20.10.12."
}
  • Eight units, two classes

    Seven units are RECONFIGURE: four servers and three networks. One is REPLATFORM: the template. All eight carry confidence MEDIUM.

  • The prefix is a variable

    The network block reads its prefix from a variable, because the export carries addresses but no mask. The variable description lists the addresses seen: 10.20.10.11 and 10.20.10.12.

How the estate maps

VMwareSTACKIT targetClass and what changes
Virtual machineServer, volumes and network interfaces on Compute EngineRECONFIGURE. The boot disk becomes an image and a boot volume, further disks become volumes, VMware Tools and the vmxnet3 and PVSCSI drivers are replaced.
VM templateSTACKIT imageREPLATFORM. Convert the VMDK to qcow2 or raw and upload it, or rebuild from a STACKIT public image. The draft writes no resource.
Port groupSTACKIT networkRECONFIGURE. VLAN IDs and virtual switches have no meaning on STACKIT; the prefix is set explicitly and kept if the VMs keep their addresses.

The shop estate has 4 VMs, 1 template and 3 port groups. The plan holds 34 steps: 15 OpenTofu steps and 19 manual steps.

Step 4: the values only you can supply

Left: one entry of the template the run leaves in review/. Right: the commands the package lists for the apply. Nothing in the package runs them.

Values to fillreview/target-values.tfvars
# IPv4 prefix (CIDR) for the network replacing port group PG-Shop-Web. Addresses seen on it: 10.20.10.11, 10.20.10.12.
# network_PG_Shop_Web_ipv4_prefix =   # string
Apply commandsexecution/terraform/apply.md
## Commands

From the output folder:

```sh
cd terraform
tofu init
tofu validate
tofu plan -out=stackit.tfplan
tofu apply stackit.tfplan
```
  • Same folder, second run

    Remove the # of a line, give the value and run StackToIT on the same output folder. Values that fit are taken; the run tells you which it refused and why.

  • Do not apply early

    The package says 15 OpenTofu steps are written but cannot be carried out as the plan stands. A full apply would still try to create them, so wait until the tables say each step is executable.

Steps 6 to 9 in detail

  1. Networks before servers

    The migration plan puts the three networks in its wave 2, network and security, and the servers in its wave 5, workloads. migration/waves.csv numbers the dependency order on its own scale: wave 1 for the networks and wave 2 for the servers. Both files describe the same order. A server waits for its interface and an interface for its network.

  2. Disks as images

    Per the STACKIT how-to: create the image record with diskFormat raw or qcow2, upload the file to the URL it returns, wait for AVAILABLE. The URL expires after a few hours and an image can be at most 70 GB.

  3. Machine types from the catalogue

    The server variable states the source size, for example 8 vCPU and 32 GiB for the database VM. Pick from the STACKIT catalogue; sizes cannot be customized.

  4. Data on second disks

    A second disk becomes a volume and the draft notes that its data is copied afterwards. Volumes up to 16 TB exist, and they can be enlarged while unattached but never reduced.

  5. The last four waves are yours

    The migration plan lists data migration, cutover, verification and decommission as waves, but no step of this run sits in them. Add yours.

Decisions the architect owns

DecisionWhy the export cannot settle itWhere to record it
Network prefix and DNS serversRVTools exports no subnet masks or name serversreview/target-values.tfvars
Machine type per serverOnly vCPU and memory of the source are knownreview/target-values.tfvars
Convert or rebuild the templateDepends on what the template containsManual step WP-03, decisions file
Keep or change the addressesThe draft writes each source IP literally into the network interface blockThe ipv4 of each network interface in terraform/compute.tf
Data copy method and windowThe package states it does not assess data movementYour own steps in the data, cutover and verification waves

Answers to design questions go in an inputs file, acceptances in a decisions file. A recorded review alone does not rewrite the Terraform.

Questions before you start

Does StackToIT connect to vCenter or STACKIT?

No. It reads the export on your computer and writes files. Applying the Terraform or moving data is done by people with their own credentials.

Is the Terraform ready to apply?

It is a draft for review. In this run 0 of 15 automated steps can run as written, because values, image ids and decisions are still open. Validate and plan against a test project first.

Which disk formats does STACKIT import?

qcow2 and raw for disks. The STACKIT how-to for custom images also accepts iso as a diskFormat value; a converted VMDK goes in as qcow2 or raw.

What do I do after the last step?

Run stacktoit verify on the package folder to check it against its manifest, and keep the folder as the record of what was decided.

Sources

Your next move: STACKIT.

Tell us about your estate. We show you what StackToIT delivers for it: target architecture, Terraform artifacts and a structured migration plan.