Juju has historically had two brokers that we use to achieve converged deployments on limited harware - one for LXD containers and one for kernel-based virtual machines (KVMs).
Juju’s KVM support has not been under active development for a long time. The last few years have only seen a couple of bug fixes in this area, and we tend not to see KVMs used where LXD can fit the need.
In the time since we explicitly supported KVMs in Juju, LXD has acquired the ability to support such virtual machines in addition to containers. Juju has exposed this ability via the virt-type
constraint for a while now.
As of today, the KVM broker is not present in the 4.0 code-base and we are hoping not to carry it forward.
There is currently no mechanism for bringing existing KVMs under the control of LXD. The Juju team will do some testing with the likely upgrade path being something like:
- Add
virt-type=virtual-machine
as a constraint to applications deployed into KVMs. - Scale up new units in LXD VMs.
- Scale down old units in KVMs.
- Migrate the model forward.
To future-proof any new deployments requiring convergence via virtual machines, the Juju team advises using the LXD broker in concert with virt-type=virtual-machine
as a constraint.