A non-transitory computer readable storage medium having computer readable program code stored thereon for causing a computer system to perform a method for upgrading a fault tolerant hyper-converged infrastructure in an environment with no additional physical infrastructure, the method comprising:
- choosing a workload domain to upgrade,
- the workload domain having a plurality of hosts thereon;
- calculating one or more conflict groups for each host of the plurality of hosts;
- selecting a physical host in the workload domain;
- calculating a number and a size of one or more nested hosts;
- creating, in a management cluster, a different nested host for each of the one more conflict groups in the physical host;
- configuring a communication network to enable communication between a virtual machine (VM) on the different nested host and a VM in the physical host;
- putting the physical host into a maintenance mode;
- upgrading the physical host;
- and
- returning the upgraded physical host from the maintenance mode to an operational mode, said method for upgrading said fault tolerant hyper-converged infrastructure providing a seamless upgrade path without requiring disabling of anti-affinity rules, while maintaining domain strength at a level equal to or greater than an original strength of said workload domain, and while preserving anti-affinity rules configured on said workload domain.