Comment 1 for bug 1961396

Revision history for this message
Simon Richardson (simonrichardson) wrote :

So this happens because the default model has the constraint of amd64. If you bootstrap the controller with an arch constraint, we don't inherit that when adding a model without specifying a constraint (maybe we should?).

You can't change a constraint of a given model, as we may have existing charmhub applications with amd64, so that violates our homogeneous topology for architecture constraints. One possible solution here would be to download a charm with the new arch when a constraint is employed, assuming it exists. This sounds easy but would require some changes to applications i.e. the charmURL as the opaque identifier.

From my experimentation the following works:

 juju bootstrap aws/eu-west-1 test3 --bootstrap-constraints="arch=arm64" --constraints="arch=arm64"
 juju deploy ubuntu
 juju add-unit ubuntu -n 1

The following all works, because we set the default model constraint to arm64. Everything correctly inherits from the application if it's set or via the model.

As a workaround, I would suggest:

 juju add-model other --constraints="arch=arm64"

I'll keep investigating to validate that the LXD provider does correctly return the architectures.