Bootstrap failure

Hello! I’m trying to deploy Openstack with MAAS and Juju according to this guide:

https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/install-overview.html. I’m stuck on bootstrapping the juju controller and I receive this error:

ERROR failed to bootstrap model: cannot start bootstrap instance in any availability zone (Hydra, default)

I’ve tried Googling but have only come up with variations of this error usually relating to not having enough memory. I would hope that 16GB per node is sufficient. Here are the full debug logs in case theres anything helpful in them:

# juju bootstrap --constraints tags=juju mymaas maas-controller --debug
16:22:17 INFO  juju.cmd supercommand.go:54 running juju [2.8.6 0 5d0442d3e15952bfc0ce059cb43ef7949ca71aaa gc go1.14.10]
16:22:17 DEBUG juju.cmd supercommand.go:55   args: []string{"/snap/juju/14498/bin/juju", "bootstrap", "--constraints", "tags=juju", "mymaas", "maas-controller", "--debug"}
16:22:17 DEBUG juju.cmd.juju.commands bootstrap.go:1165 authenticating with region "" and credential "anyuser" ()
16:22:17 DEBUG juju.cmd.juju.commands bootstrap.go:1293 provider attrs: map[]
16:22:17 INFO  cmd authkeys.go:114 Adding contents of "/home/rporter/.local/share/juju/ssh/juju_id_rsa.pub" to authorized-keys
16:22:17 DEBUG juju.cmd.juju.commands bootstrap.go:1363 preparing controller with config: map[agent-metadata-url: agent-stream:released apt-ftp-proxy: apt-http-proxy: apt-https-proxy: apt-mirror: apt-no-proxy: authorized-keys:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJboGBLghVYMBwEVBgoAuNTpTuso48QOj63BoZ99kXjLFQB/LdPFlXa3QdNLramVhVlbYBnu3kmTp3zye87V66Te2znMzl/wnDy1R0hWQS1fszSaUVnFVkU48xL12/8FAiV/PwliANNqvDxxlA2PPD/Szy1l7TjI0XLFwRH2ZHJmmo+z+GtXrjiZmo87iFKb9aWpzqBEnca1W/UfOWtvMUNqCgkpHtLLDAvXv8Wph56QakO/fsixXT120wRn9Odm5FwfvcZNWNQO65XoTMY552yTbpfNnCVJ/Od/x5/0UIpkK1AUJCF1ycdiqD3x14uW0xPyyEehjiCTYJxzx1fKYl juju-client-key
 automatically-retry-hooks:true backup-dir: cloudinit-userdata: container-image-metadata-url: container-image-stream:released container-inherit-properties: container-networking-method: default-series:bionic default-space: development:false disable-network-management:false egress-subnets: enable-os-refresh-update:true enable-os-upgrade:true fan-config: firewall-mode:instance ftp-proxy: http-proxy: https-proxy: ignore-machine-addresses:false image-metadata-url: image-stream:released juju-ftp-proxy: juju-http-proxy: juju-https-proxy: juju-no-proxy:127.0.0.1,localhost,::1 logforward-enabled:false logging-config: lxd-snap-channel:latest/stable max-action-results-age:336h max-action-results-size:5G max-status-history-age:336h max-status-history-size:5G name:controller net-bond-reconfigure-delay:17 no-proxy:127.0.0.1,localhost,::1 provisioner-harvest-mode:destroyed proxy-ssh:false resource-tags: snap-http-proxy: snap-https-proxy: snap-store-assertions: snap-store-proxy: snap-store-proxy-url: ssl-hostname-verification:true test-mode:false transmit-vendor-metrics:true type:maas update-status-hook-interval:5m uuid:8fd6641b-748a-4da2-8bb9-9e6e1e9f1cff]
16:22:17 DEBUG juju.provider.maas environprovider.go:62 opening model "controller".
16:22:17 INFO  cmd bootstrap.go:775 Creating Juju controller "maas-controller" on mymaas
16:22:17 INFO  juju.cmd.juju.commands bootstrap.go:844 combined bootstrap constraints: tags=juju
16:22:17 DEBUG juju.environs.bootstrap bootstrap.go:308 model "controller" supports application/machine networks: true
16:22:17 DEBUG juju.environs.bootstrap bootstrap.go:310 network management by juju enabled: true
16:22:17 INFO  cmd bootstrap.go:376 Loading image metadata
16:22:17 INFO  cmd bootstrap.go:448 Looking for packaged Juju agent version 2.8.6 for amd64
16:22:17 INFO  juju.environs.bootstrap tools.go:81 looking for bootstrap agent binaries: version=2.8.6
16:22:17 DEBUG juju.environs.tools tools.go:102 finding agent binaries in stream: "released"
16:22:17 DEBUG juju.environs.tools tools.go:104 reading agent binaries with major.minor version 2.8
16:22:17 DEBUG juju.environs.tools tools.go:112 filtering agent binaries by version: 2.8.6
16:22:17 DEBUG juju.environs.tools tools.go:115 filtering agent binaries by series: bionic
16:22:17 DEBUG juju.environs.tools tools.go:118 filtering agent binaries by architecture: amd64
16:22:17 DEBUG juju.environs.tools urls.go:138 trying datasource "keystone catalog"
16:22:18 DEBUG juju.environs.simplestreams simplestreams.go:692 using default candidate for content id "com.ubuntu.juju:released:tools" are {20201028 mirrors:1.0 content-download streams/v1/cpc-mirrors.sjson []}
16:22:19 INFO  juju.environs.bootstrap tools.go:83 found 1 packaged agent binaries
16:22:19 INFO  cmd bootstrap.go:535 Starting new instance for initial controller
16:22:19 INFO  cmd bootstrap.go:177 Launching controller instance(s) on mymaas...
16:22:19 DEBUG juju.provider.maas environ.go:963 attempting to acquire node in zone "Hydra"
16:22:20 DEBUG juju.provider.common bootstrap.go:255 failed to start instance in availability zone "Hydra": failed to acquire node: No available machine matches constraints: [('agent_name', ['8fd6641b-748a-4da2-8bb9-9e6e1e9f1cff']), ('mem', ['3584']), ('tags', ['juju']), ('zone', ['Hydra'])] (resolved to "mem=3584.0 tags=juju zone=Hydra")
16:22:20 DEBUG juju.provider.maas environ.go:963 attempting to acquire node in zone "default"
16:22:20 ERROR juju.cmd.juju.commands bootstrap.go:795 failed to bootstrap model: cannot start bootstrap instance in any availability zone (Hydra, default)
16:22:20 DEBUG juju.cmd.juju.commands bootstrap.go:796 (error details: [{/build/snapcraft-juju-35d6cf/parts/juju/src/cmd/juju/commands/bootstrap.go:889: failed to bootstrap model} {/build/snapcraft-juju-35d6cf/parts/juju/src/environs/bootstrap/bootstrap.go:633: } {/build/snapcraft-juju-35d6cf/parts/juju/src/environs/bootstrap/bootstrap.go:539: } {/build/snapcraft-juju-35d6cf/parts/juju/src/provider/common/bootstrap.go:260: cannot start bootstrap instance in any availability zone (Hydra, default)}])
16:22:20 DEBUG juju.cmd.juju.commands bootstrap.go:1471 cleaning up after failed bootstrap
16:22:20 INFO  juju.provider.common destroy.go:21 destroying model "controller"
16:22:20 INFO  juju.provider.common destroy.go:32 destroying instances
16:22:20 INFO  juju.provider.common destroy.go:56 destroying storage
16:22:20 INFO  cmd supercommand.go:544 command finished

Hi Ryan. I would first confirm in the MAAS web UI that you have a node with the tag ‘juju’ applied.

I do! I double-checked the case just to make sure, but they are the same.

I would next try to deploy that tagged node manually in the MAAS web UI. Select that node, then green Take action button, Deploy.... Choose the release that you’ve told Juju to use when creating the model. The docs say to use ‘focal’. So you should have the Focal image imported already in MAAS.

Done! I am able to ssh into the resulting deployed Focal node.