juju client does not support arm64 on amd64 machine

Bug #1711154 reported by Ashley Lai
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical Juju
Invalid
Undecided
Unassigned

Bug Description

juju version: 2.2.2-xenial-amd64

We have Cavium ThunderX arm64 servers on our maas. When bootstrapping to the arm64 server from amd64 machine juju gives the following error. I also got the same error when I deploy to arm64 server from the amd64 controller.

 no matching agent binaries available

I retried to bootstrap with option --constraints arch=arm64 and I got a different error:

 failed to bootstrap model: cannot use agent built for "arm64" using a machine running on "amd64"

Bootstrap worked fine from juju client running on arm64 server. We need to have juju client to support arm64 on amd64 machines.

Tags: cdo-qa
Ashley Lai (alai)
tags: added: cdo-qa
Revision history for this message
Sean Feole (sfeole) wrote :
Download full text (10.8 KiB)

I gave ashley some steps to try as I work in this sort of environment daily. Also suggested she launch a new container install juju & configure to ensure she is working in a clean environment.

I can bootstrap arm64 hosts from my x64 laptop, Including Cavium ThunderX servers. In this case vendor should not matter.

I have tested with both juju/stable & juju/devel

In this case i'm using juju/devel:

ubuntu@vital-crawdad:~$ uname -a
Linux vital-crawdad 4.10.0-32-generic #36-Ubuntu SMP Tue Aug 8 12:10:06 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

ubuntu@vital-crawdad:~$ juju --version
2.2.2-xenial-amd64

ubuntu@vital-crawdad:~$ juju bootstrap 1ss --debug --constraints arch=arm64
17:18:57 INFO juju.cmd supercommand.go:63 running juju [2.2.2 gc go1.8]
17:18:57 DEBUG juju.cmd supercommand.go:64 args: []string{"juju", "bootstrap", "1ss", "--debug", "--constraints", "arch=arm64"}
17:18:57 DEBUG juju.cmd.juju.commands bootstrap.go:803 authenticating with region "" and credential "qa" ()
17:18:57 DEBUG juju.cmd.juju.commands bootstrap.go:915 provider attrs: map[]
17:18:58 INFO cmd authkeys.go:114 Adding contents of "/home/ubuntu/.local/share/juju/ssh/juju_id_rsa.pub" to authorized-keys
17:18:58 DEBUG juju.cmd.juju.commands bootstrap.go:971 preparing controller with config: map[apt-https-proxy: development:false automatically-retry-hooks:true logforward-enabled:false enable-os-refresh-update:true http-proxy: apt-http-proxy: no-proxy:127.0.0.1,localhost,::1 resource-tags: enable-os-upgrade:true provisioner-harvest-mode:destroyed update-status-hook-interval:5m max-status-history-size:5G disable-network-management:false max-status-history-age:336h apt-mirror: net-bond-reconfigure-delay:17 name:controller ignore-machine-addresses:false image-metadata-url: uuid:562bd46a-8d5a-44b5-8c39-46a94c3ce90a firewall-mode:instance https-proxy: apt-no-proxy: agent-metadata-url: test-mode:false ftp-proxy: logging-config: proxy-ssh:false image-stream:released apt-ftp-proxy: default-series:xenial transmit-vendor-metrics:true type:maas ssl-hostname-verification:true agent-stream:released authorized-keys:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChSkHlIieYdzzsS40MmsjJLxy28BX11D54TaBVQ/z5TNOx11Wi1UujpoJ7tkwvJ7eg+UeLZy/3hXqdSl+qeD4M68rVilI3rBfpzfmezrb11+7FtgPJGNhiXyTxuL5wQu9RjEdLHKy1eZmbvrnSSDaASbZf2vRFwn1fc4aCthWM7yJM37Fy5+ncs2T/1w9fKcJ39SERiBaZci52n/Z6O1u4Uqn2iv2FmOOV/c6KkSkpEzHaJzn+qLsAJ44kRMB2ac/FmC9Gz4IcNpXmPnvmXhV0gP4I5xQ5L9Ul6oeyNMCLKGqCoCTR/4Rh4lXFqg/0Qwu1H/ab70zJModhwtamgimv juju-client-key
]
17:18:58 DEBUG juju.provider.maas environprovider.go:61 opening model "controller".
17:18:58 INFO cmd bootstrap.go:481 Creating Juju controller "1ss" on 1ss
17:18:58 INFO juju.cmd.juju.commands bootstrap.go:536 combined bootstrap constraints: arch=arm64
17:18:58 DEBUG juju.environs.bootstrap bootstrap.go:199 model "controller" supports service/machine networks: true
17:18:58 DEBUG juju.environs.bootstrap bootstrap.go:201 network management by juju enabled: true
17:18:58 INFO cmd bootstrap.go:233 Loading image metadata
17:18:58 INFO cmd bootstrap.go:296 Looking for packaged Juju agent version 2.2.2 for arm64
17:18:58 INFO juju.environs.bootstrap tools.go:72 looking for boot...

Revision history for this message
Ashley Lai (alai) wrote :

Thanks Sean for the help and suggestions. I've tested on a new container and it worked as expected. Not sure why it did not work on my desktop. I'm going to close this bug for now.

Changed in juju:
status: New → Invalid
Revision history for this message
John A Meinel (jameinel) wrote :

I can't say for sure what was wrong in this case, but my guess is that you were using a pre-release of the Juju client, for which it checked official sources for the agent binaries, but couldn't find them. Juju then falls back to trying to upload a local copy of the agent binaries, but we only provide the binaries for the architecture that you are on.

If you use the final released versions of the Juju client, it should be able to find any binaries across all supported architectures.

You would still need to supply '--arch=XXX' if the desired target architecture is not the same as your local client architecture.

Revision history for this message
dann frazier (dannf) wrote :

I believe you need to specify --bootstrap-constraints.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.