Reading this bug I think I'm missing something on what Juju expects from Neutron AZ's in terms of choosing networks etc.
AFAIK the AZ implementation in Neutron is designed to allow network services for a particular resource to be spread across underlying physical/network/power failure domains - so for example you could create a network:
which would schedule the various network namespaces and daemons (dnsmasq, metadata proxies etc) across agents residing in zones AZ1 and AZ2. Likewise went a router is created, to provide north/south network traffic flows from the tenant network to the outside world, its created as a HA router with zone hinting to multiple availability zones:
"21:23:49 ERROR juju.cmd.juju.commands bootstrap.go:491 failed to bootstrap model: cannot start bootstrap instance: cannot allocate a public IP as needed: could not find an external network in availablity zone"
Juju is expecting to find an external network in the same AZ as the instance being created - but that does not sound sensible to me - the instance availability zone locates and instance to a specific failure domain in the DC, whereas the network availability zone allows a network or routers resources to be spread across underlying failure domains.
Reading this bug I think I'm missing something on what Juju expects from Neutron AZ's in terms of choosing networks etc.
AFAIK the AZ implementation in Neutron is designed to allow network services for a particular resource to be spread across underlying physical/ network/ power failure domains - so for example you could create a network:
$ neutron net-create --availability- zone-hint AZ1 \ -availability- zone-hint AZ2 new_network
-
which would schedule the various network namespaces and daemons (dnsmasq, metadata proxies etc) across agents residing in zones AZ1 and AZ2. Likewise went a router is created, to provide north/south network traffic flows from the tenant network to the outside world, its created as a HA router with zone hinting to multiple availability zones:
$ neutron router-create --availability- zone-hint AZ1 \ -availability- zone-hint AZ2 --ha new_router
-
I think that reading:
"21:23:49 ERROR juju.cmd. juju.commands bootstrap.go:491 failed to bootstrap model: cannot start bootstrap instance: cannot allocate a public IP as needed: could not find an external network in availablity zone"
Juju is expecting to find an external network in the same AZ as the instance being created - but that does not sound sensible to me - the instance availability zone locates and instance to a specific failure domain in the DC, whereas the network availability zone allows a network or routers resources to be spread across underlying failure domains.