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. 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. 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. 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. 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. 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. Build networks
Port groups become STACKIT networks in the network and security wave of the migration plan. Servers keep their addresses on them.
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. Apply Terraform in a test project
Servers, interfaces and volumes come from the draft. Apply only when every step is executable as written.
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. 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 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 0resource "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
| VMware | STACKIT target | Class and what changes |
|---|---|---|
| Virtual machine | Server, volumes and network interfaces on Compute Engine | RECONFIGURE. 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 template | STACKIT image | REPLATFORM. Convert the VMDK to qcow2 or raw and upload it, or rebuild from a STACKIT public image. The draft writes no resource. |
| Port group | STACKIT network | RECONFIGURE. 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.
# 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## 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
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.
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.
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.
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.
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
| Decision | Why the export cannot settle it | Where to record it |
|---|---|---|
| Network prefix and DNS servers | RVTools exports no subnet masks or name servers | review/target-values.tfvars |
| Machine type per server | Only vCPU and memory of the source are known | review/target-values.tfvars |
| Convert or rebuild the template | Depends on what the template contains | Manual step WP-03, decisions file |
| Keep or change the addresses | The draft writes each source IP literally into the network interface block | The ipv4 of each network interface in terraform/compute.tf |
| Data copy method and window | The package states it does not assess data movement | Your 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.