Comment 1 for bug 1945688

Revision history for this message
Ian Booth (wallyworld) wrote :

Juju's methodology is to set up the desired model, and then work asynchronously to make reality match the model. Juju doesn't block on machines being provisioned when assigning units - it picks a machine which does not yet have anything assigned to it. That machine may well be provisioning still. But when it does become ready the juju agent on the machine will then work to install any units that had been allocated to the machine. Large bundles benefit from this behaviour for example.

Selection of available machines is not deterministic so you may well have been "lucky" previously. Note that Juju doesn't just pick any unused machine - it makes sure that the machine's memory, cpu, disk etc matches any constraints used when deploying the app/unit.

Should Juju prefer fully provisioned machines, all other things being equal? That approach would ensure less chance of a failed deployment - a non-provisioned machine might fail to come up and thus the unit would not get deployed. Whereas if the unit were preferably placed on an unused provisioned machine, at least it would be running even if the other machine failed.