Apache CloudStack is not dying — it is an active Apache project that picked up users during the VMware exodus. Providers leave it for a different reason: their customers now want managed Kubernetes, databases and object storage next to the VMs, and running CloudStack plus a separate Kubernetes stack means paying for two control planes and staffing both.
Pairs with: Ænix Public Cloud Platform — CloudStack estates are almost always sold to external customers, so the tenant model, service catalogue and billing are the parts that have to survive the move. See also WHMCS integration if CloudStack is billed through WHMCS.
When CloudStack should stay
If your product is virtual machines, your estate is stable KVM, your customers are not asking for containers or managed data services, and your team knows the codebase, there is no migration case. CloudStack is maintained, the zone/pod/cluster model scales, and replacing a working IaaS with an equivalent IaaS buys nothing.
The case appears when the product has to broaden. A provider selling only VMs in 2026 is competing on price with everyone else selling only VMs. The moment the roadmap includes managed Kubernetes, managed PostgreSQL, S3-compatible storage or GPU capacity, the question stops being “which IaaS” and becomes “how many control planes am I willing to operate.”
What the mapping actually looks like
| CloudStack | Cozystack destination | Migration character |
|---|---|---|
| KVM guests, QCOW2 on NFS or Ceph primary storage | KubeVirt VMs, disks imported via CDI | Mechanical. No guest rebuild for Linux; Windows needs VirtIO handling. |
| Templates and ISOs in secondary storage | Image sources for DataVolumes | Mechanical. |
| Domains, accounts, projects | Tenant CRD hierarchy plus Kubernetes RBAC and OIDC | Re-model. CloudStack’s domain tree and the tenant tree are both hierarchical but not identically shaped. |
| Service offerings and disk offerings | Catalogue definitions and storage classes | Re-model. Straightforward, but every offering in use must be enumerated — providers routinely find offerings nobody remembers selling. |
| Virtual router (DHCP, source NAT, port forwarding, static NAT, site-to-site VPN, LB) | Cilium plus platform services; no single replacement object | Redesign. The largest single work item. |
| Isolated networks, VPCs, network offerings | Cilium networking with per-tenant policy; LB IPAM with BGP or L2 announcements | Redesign, coupled to the address plan. |
| Security groups (basic zones) | Kubernetes network policy | Re-model. Same intent, different expression. |
| Primary storage (NFS / Ceph RBD) | LINSTOR/DRBD, or keep your existing Ceph cluster via Ceph CSI | Keep Ceph, or move data. A design choice, not a forced change. |
| Secondary storage | Object storage on the platform | Usually a straight move. |
| SystemVMs (SSVM, console proxy) | Platform components; console via the tenant dashboard | Replaced, not migrated. |
| CloudStack API | Kubernetes API and the tenant dashboard | Rewrite for anyone automating against it. |
| Usage records | Platform metrics stack | Re-point. Gates billing — schedule early. |
The virtual router is the redesign. In CloudStack it is one appliance per network doing DHCP, DNS forwarding, source NAT, port forwarding, static NAT, load balancing and site-to-site VPN. On a Kubernetes-native platform those functions live in different places: address assignment and policy in Cilium, external addresses through LB IPAM announced by BGP or L2, and VPN as an explicit service where a customer genuinely needs it. Most providers discover during the assessment that only two or three of the virtual router’s functions are in real use across the customer base — but the inventory has to be done per customer, because the one tenant using site-to-site VPN is usually the one paying the most.
Customer-held API credentials set the timeline. If your customers only ever touch the portal, the API surface is an internal concern and the migration is yours to schedule. If customers have CloudStack API keys and their own automation, you are running a public API deprecation, and that has a communication timeline measured in quarters. This distinction changes the shape of the whole programme and belongs in week one of the assessment.
How the migration runs
- Architecture review. Offering inventory, virtual-router feature usage per customer, API-credential exposure, billing integration surface, address plan. Output is a target architecture and a customer-by-customer cohort sequence.
- Parallel deployment. The new platform is built alongside the running CloudStack zones. Both operate together for the duration.
- Billing and portal first. Provisioning and metering are re-pointed before customer workloads move, so that migrated customers are billed correctly from their first day on the new platform. This ordering is deliberate; providers who leave billing to the end migrate customers they cannot invoice.
- Cohort migration. Customers move in groups, smallest and most tolerant first. Each cohort is validated in parallel run before its CloudStack side is released.
- Decommission and catalogue expansion. Freed CloudStack hosts are rebuilt into the target cluster, and the service catalogue widens beyond VMs — which is the reason the migration was worth doing.
Typical duration: four to twelve months for a mid-size provider.
How Ænix engages
- Platform Readiness Assessment — offering and virtual-router inventory, tenant and address design, billing integration scope, cohort plan, risk register.
- Pilot cohort — first customer group migrated with Ænix engineers inside your team, producing the runbooks for the rest.
- Rolling migration — cohort by cohort, parallel-run validated, hardware recycled forward.
- Operations — your team with Cozystack enterprise support behind it, or operated by Ænix.
Ænix is the team behind Cozystack (CNCF project, Apache 2.0).