No agent binaries available

Hello,

I have a multicloud controller on K8s, with an lxd-cloud. And when I add a machine, I see this:

Model                                 Controller  Cloud/Region       Version  SLA          Time
stamp
6ab18557-4fbd-4eb6-a8b4-b71dc54e54af  controller  lxd-cloud/default  2.8.0    unsupported  10:0
7:10+02:00

Machine  State  DNS  Inst id  Series  AZ  Message
0        down        pending  xenial      no agent binaries available
1        down        pending  xenial      no agent binaries available
2        down        pending  xenial      no agent binaries available

I’m running my environment in Focal, with the latest/stable microk8s, lxd, and juju snaps

1 Like

Hello,

I have the same problem as you. I need someone to answer to this question.
What is remarkable is that series bionic works but series xenial does not.
But I need series xenial. So what is the solution for that?

1 Like

When deploying machines with a series in a model (that doesn’t match the controller series), you will see that for a brief point while the controller fetches the binaries for that series from the simplestreams source server. I you are seeing this last longer than 30 minutes, you should ensure your juju controller has proper egress to https://streams.canonical.com/ either through it’s model-config proxy settings or directly through your firewall.

I have discussed this with the Juju team and it appears there may be opportunity for additional caching of agent binaries to improve this experience. Please feel free to subscribe to lp#1900021 for updates if you are interested in the caching topic.

Seems we could improve this experience a lot :slight_smile:

Saying the binaries are not available is misleading when the real reason is we haven’t yet fetched them.

And if we can’t reach streams.canonical.com, then we should say so!

It seems that we need a status message that reflects:

  • we have not yet tried to fetch the agent binaries
  • we are in the process of fetching the binaries
  • we have failed to connect to streams.canonical.com

Also, it seems that we may need commands to show which agents we have (out of the full population of agent binaries) and to control the fetching of updated ones. Perhaps a table of model version/type/architectures would work?

2 Likes

This (not letting a user know what’s going wrong) is a general problem for the juju user experience with alot of room for valuable improvements.

I think it’s getting better though.

Thank you for the feedback, all!

I think there are three issues here:

The first is that there might be an issue w/ identifying the correct agent to use when we add an lxd cloud to a k8s cloud. (The reverse – adding a k8s cloud to an lxd cloud, as we do in our test environments – works.) @davigar15 would you file that as a bug and link it here?

The second is that we could be doing smarter things with caching agents across models. @afreiberger has filed a bug about that here: Bug #1900021 “Controller not caching agent binaries across model...” : Bugs : juju. We’ve triaged that bug and queued it up to look at this cycle, time permitting.

The third is that the messaging about issues w/ simplestreams is just not great. Better surfacing of errors in general is something that the team is aware of, and is committed to doing a better job of moving forward. I think that there’s an opportunity to improve the simple streams messaging when we address Drew’s bug above.

Hey @petevg ! :slightly_smiling_face:

There is the bug to track what you asked me for: Bug #1900861 “No agent binaries available” : Bugs : juju

Regards,
David

2 Likes