No Matching Agent Binaries Available

I’m attempting to add machines from a MAAS cloud into a model. The model is hosted on an LXD controller. The LXD controller is running on an arm64 machine (an RPi4) and the machines in the MAAS cloud are amd64.

When I attempt to add a machine from the MAAS cloud to the model hosted on the LXD controller (which has the MAAS Cloud added to it) I get the error ‘No Matching Agent Binaries Available’. I’m presuming this is because of the mixed arch between the controller and the machines?

I realize the multi-cloud controller feature is a beta, so if the answer is ‘host the model somewhere else’ then fair enough :slight_smile:

Agent binaries are provided by the client to the controller.

I suspect you’ll need to deploy a new controller onto an arm64 unit based off of the comments on Bug #1711154 “juju client does not support arm64 on amd64 machin...” : Bugs : juju
and Bug #1880422 “Bootstrapping manual controller on arm64 fails” : Bugs : juju

It appears there may be resolution in the upcoming 2.8.2 release. It may be worth attempting to use the current controller by specifying arch=arm64 in your constraints for the app/machine deployment, as it seems the filter of the available agents is performed by the client’s arch unless constraints are provided.

1 Like

I think the issue is that the Juju controller needs to also cache a copy of the AMD64 agent binaries, since the controller is ARM64.
I don’t remember the mechanisms for telling a controller to grab additional binaries, but I do remember that it was possible to do so.

The fix in 2.8 was just for “juju bootstrap manual” to allow you to not supply ‘–arch=XXX’, but it didn’t change what was fundamentally possible.

2 Likes

for anyone that faces similar issues:

 juju add-machine XXXX --series YYYY --constraints="arch=arm64"