Affects also for me. OpenStack version: Newton Juju version: 2.1.1-xenial-amd64 Steps to reproduce: - Add OpenStack Cloud using juju add-cloud - Define credentials - Define simplestreams (metadata-source) $ juju show-cloud test defined: local type: openstack description: Openstack Cloud auth-types: [userpass] endpoint: https://myopenstack.example.com:5000/v3 regions: RegionOne: {} Define bootstrap.yaml: network: 5c7cd500-c581-4491-86fa-af95a71e8c18 prefer-ipv6: true use-default-secgroup: true firewall-mode: global use-floating-ip: true ssl-hostname-verification: false Bootstrap: juju bootstrap test testcontroller --metadata-source=/home/ubuntu/simplestreams/ --debug --bootstrap-series=xenial --config /home/ubuntu/bootstrap.yaml Logs: 6:05:50 INFO juju.cmd supercommand.go:63 running juju [2.1.1 gc go1.6.2] 06:05:50 DEBUG juju.cmd supercommand.go:64 args: []string{"juju", "bootstrap", "test", "testcontroller", "--metadata-source=/home/ubuntu/simplestreams/", "--debug", "--bootstrap-series=xenial", "--config", "/home/ubuntu/bootstrap.yaml"} 06:05:50 DEBUG juju.cmd.juju.commands bootstrap.go:780 authenticating with region "RegionOne" and credential "anrah" () 06:05:50 DEBUG juju.cmd.juju.commands bootstrap.go:892 provider attrs: map[network:5c7cd500-c581-4491-86fa-af95a71e8c18 external-network: use-floating-ip:true use-default-secgroup:true] 06:05:51 INFO cmd cmd.go:141 Adding contents of "/home/ubuntu/.local/share/juju/ssh/juju_id_rsa.pub" to authorized-keys 06:05:51 DEBUG juju.cmd.juju.commands bootstrap.go:948 preparing controller with config: map[no-proxy: automatically-retry-hooks:true name:controller image-stream:released http-proxy: ignore-machine-addresses:false uuid:296abafa-cbec-441e-8dc2-d5e93274db7a prefer-ipv6:true proxy-ssh:false network:5c7cd500-c581-4491-86fa-af95a71e8c18 firewall-mode:global net-bond-reconfigure-delay:17 logging-config: apt-http-proxy: agent-metadata-url: enable-os-upgrade:true use-test-secgroup:true image-metadata-url: external-network: use-default-secgroup:true type:openstack ssl-hostname-verification:false test-mode:false resource-tags: transmit-vendor-metrics:true apt-mirror: https-proxy: disable-network-management:false use-floating-ip:true apt-ftp-proxy: apt-https-proxy: agent-stream:released authorized-keys:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6wSRT8BL080wnvdMvnGmyzCofU1nZYndfu5VOciK/LpnlAo2E85gsmrGTx6qSnCWmOaJy8yjU01VBsPTdnCWeyJF5njAmsrwrAqIgADcX7BtU7pxHPTI9sOGJQG9CacnZ8m7JBpjfZTDND5vcJcQ2p5pINE3/edeSH3JeO84ASXCmym2cuMzhPra8bAmQha78vAec3j79xULzrITPsQY7mIJ7AQexKW6FFsIlaifm9v18aC9/AiaN9ZiMeM4Datb+mc66czvoJvp8B9ayzQt70auoG6/cFqjuCWgED4SGcrgYUUS8+DklLvvB2yXNIhSasj529cIcM2ChVY9WptJz juju-client-key logforward-enabled:false provisioner-harvest-mode:destroyed default-series:xenial ftp-proxy: development:false enable-os-refresh-update:true] 06:05:51 INFO juju.provider.openstack provider.go:131 opening model "controller" 06:05:51 DEBUG goose :22 auth details: &{Token:gAAAAABYv58_sWsGcIwtc3g-IwNRXGb9V4MccqfTFpt-Csi7B8gkOP3K1tvoyqeWq4Lm41e5wNRIg4Oj6sy3s6BRDv534Bz-zjots2AEvwUVHCqBKgeqrODmNpDmoOZ1jBisNX1V1i7591SdR35EY0SOyRYoz2oofwF-dp-sSyvtB__a6h9njtM TenantId:04e6cec0079446c187e6a7b74ea82347 UserId:88ec6ad724f543e095d2684fdb726515 Domain: RegionServiceURLs:map[RegionOne:map[metering:https://myopenstack.example.com:8777 compute:https://myopenstack.example.com:8774/v2.1 volume:https://myopenstack.example.com:8776/v1/04e6cec0079446c187e6a7b74ea82347 s3:https://myopenstack.example.com:8080 orchestration:https://myopenstack.example.com:8004/v1/04e6cec0079446c187e6a7b74ea82347 artifact:https://myopenstack.example.com:9494 cloudformation:https://myopenstack.example.com:8000/v1 volumev3:https://myopenstack.example.com:8776/v3/04e6cec0079446c187e6a7b74ea82347 compute_legacy:https://myopenstack.example.com:8774/v2/04e6cec0079446c187e6a7b74ea82347 volumev2:https://myopenstack.example.com:8776/v2/04e6cec0079446c187e6a7b74ea82347 identity:https://myopenstack.example.com:5000/v2.0 object-store:https://myopenstack.example.com:8080/v1/AUTH_04e6cec0079446c187e6a7b74ea82347 baremetal:https://myopenstack.example.com:6385 network:https://myopenstack.example.com:9696 alarming:https://myopenstack.example.com:8042 image:https://myopenstack.example.com:9292]]} 06:05:51 INFO cmd cmd.go:129 Creating Juju controller "testcontroller" on test/RegionOne 06:05:51 DEBUG goose :22 performing API version discovery for "https://myopenstack.example.com:8774/" 06:05:51 DEBUG goose :22 discovered API versions: [{Version:{major:2 minor:0} Links:[{Href:https://myopenstack.example.com:8774/v2/ Rel:self}] Status:SUPPORTED} {Version:{major:2 minor:1} Links:[{Href:https://myopenstack.example.com:8774/v2.1/ Rel:self}] Status:CURRENT}] 06:05:51 INFO juju.cmd.juju.commands bootstrap.go:526 combined bootstrap constraints: 06:05:51 DEBUG juju.environs.bootstrap bootstrap.go:199 model "controller" supports service/machine networks: false 06:05:51 DEBUG juju.environs.bootstrap bootstrap.go:201 network management by juju enabled: true 06:05:51 INFO juju.environs.bootstrap bootstrap.go:662 Setting default tools and image metadata sources: /home/ubuntu/simplestreams/ 06:05:51 DEBUG juju.environs imagemetadata.go:46 new user image datasource registered: bootstrap metadata 06:05:51 INFO juju.environs.bootstrap bootstrap.go:688 custom image metadata added to search path 06:05:51 INFO cmd cmd.go:141 Loading image metadata 06:05:51 DEBUG juju.environs imagemetadata.go:112 obtained image datasource "bootstrap metadata" 06:05:51 DEBUG juju.environs imagemetadata.go:112 obtained image datasource "default cloud images" 06:05:51 DEBUG juju.environs imagemetadata.go:112 obtained image datasource "default ubuntu cloud images" 06:05:51 DEBUG juju.environs.bootstrap bootstrap.go:571 constraints for image metadata lookup &{{{RegionOne https://myopenstack.example.com:5000/v3} [xenial win2012 win2016 win8 win81 quantal wily win2012hv win2016nano vivid win2012hvr2 win2016hv centos7 raring saucy utopic yakkety zesty win2008r2 win2012r2 win7 precise trusty win10 genericlinux] [amd64 i386 armhf arm64 ppc64el s390x] released}} 06:05:51 DEBUG juju.environs.bootstrap bootstrap.go:583 found 1 image metadata in bootstrap metadata 06:05:52 DEBUG juju.environs.bootstrap bootstrap.go:583 found 0 image metadata in default cloud images 06:05:52 DEBUG juju.environs.simplestreams simplestreams.go:454 skipping index "http://cloud-images.ubuntu.com/releases/streams/v1/index.sjson" because of missing information: index file has no data for cloud {RegionOne https://myopenstack.example.com:5000/v3} not found 06:05:52 DEBUG juju.environs.bootstrap bootstrap.go:579 ignoring image metadata in default ubuntu cloud images: index file has no data for cloud {RegionOne https://myopenstack.example.com:5000/v3} not found 06:05:52 DEBUG juju.environs.bootstrap bootstrap.go:587 found 1 image metadata from all image data sources 06:05:52 INFO cmd cmd.go:129 Looking for packaged Juju agent version 2.1.1 for amd64 06:05:52 INFO juju.environs.bootstrap tools.go:72 looking for bootstrap agent binaries: version=2.1.1 06:05:52 INFO juju.environs.tools tools.go:101 finding agent binaries in stream "released" 06:05:52 INFO juju.environs.tools tools.go:103 reading agent binaries with major.minor version 2.1 06:05:52 INFO juju.environs.tools tools.go:111 filtering agent binaries by version: 2.1.1 06:05:52 INFO juju.environs.tools tools.go:114 filtering agent binaries by series: xenial 06:05:52 INFO juju.environs.tools tools.go:117 filtering agent binaries by architecture: amd64 06:05:52 DEBUG juju.environs.tools urls.go:109 trying datasource "keystone catalog" 06:05:52 INFO juju.environs.bootstrap tools.go:74 found 0 packaged agent binaries 06:05:52 INFO cmd cmd.go:129 No packaged binary found, preparing local Juju agent binary 06:05:52 DEBUG juju.environs.sync sync.go:302 Making agent binary tarball 06:05:52 DEBUG juju.environs.tools build.go:126 looking for: juju 06:05:52 DEBUG juju.environs.tools build.go:165 checking: /usr/bin/jujud 06:05:52 INFO juju.environs.tools build.go:171 Found agent binary to upload (/usr/bin/jujud) 06:05:52 INFO juju.environs.tools build.go:181 target: /tmp/juju-tools469012365/jujud 06:05:53 DEBUG juju.environs.tools build.go:254 forcing version to 2.1.1.1 06:05:53 DEBUG juju.environs.tools build.go:42 adding entry: &tar.Header{Name:"FORCE-VERSION", Mode:436, Uid:0, Gid:0, Size:7, ModTime:time.Time{sec:63624549953, nsec:75059712, loc:(*time.Location)(0x3fd2260)}, Typeflag:0x30, Linkname:"", Uname:"ubuntu", Gname:"ubuntu", Devmajor:0, Devminor:0, AccessTime:time.Time{sec:63624549953, nsec:75059712, loc:(*time.Location)(0x3fd2260)}, ChangeTime:time.Time{sec:63624549953, nsec:75059712, loc:(*time.Location)(0x3fd2260)}, Xattrs:map[string]string(nil)} 06:05:53 DEBUG juju.environs.tools build.go:42 adding entry: &tar.Header{Name:"jujud", Mode:493, Uid:0, Gid:0, Size:123461024, ModTime:time.Time{sec:63624549953, nsec:23059785, loc:(*time.Location)(0x3fd2260)}, Typeflag:0x30, Linkname:"", Uname:"ubuntu", Gname:"ubuntu", Devmajor:0, Devminor:0, AccessTime:time.Time{sec:63624549953, nsec:23059785, loc:(*time.Location)(0x3fd2260)}, ChangeTime:time.Time{sec:63624549953, nsec:23059785, loc:(*time.Location)(0x3fd2260)}, Xattrs:map[string]string(nil)} 06:06:05 INFO juju.environs.sync sync.go:333 using agent binary 2.1.1-xenial-amd64 aliased to 2.1.1.1-xenial-amd64 (24502kB) 06:06:05 INFO cmd cmd.go:141 Starting new instance for initial controller 06:06:05 DEBUG goose :22 auth details: &{Token:gAAAAABYv59N1SlhepRnFgHCJuxbu3wODpjwzh4Nm6Y547c4DvHmTO4dpDWJ-PNtyMk2ACRflhnw2gMRDkPqBXjtEn6_tZOEkpStCS_1qDzJi40jdw8NB5ADPdKLaqSWZiWoJrr0xR68GbaUJoheZOoGSNslt_BXlL91c6OBqqDkaZIrgwWu81w TenantId:04e6cec0079446c187e6a7b74ea82347 UserId:88ec6ad724f543e095d2684fdb726515 Domain: RegionServiceURLs:map[RegionOne:map[object-store:https://myopenstack.example.com:8080/v1/AUTH_04e6cec0079446c187e6a7b74ea82347 image:https://myopenstack.example.com:9292 baremetal:https://myopenstack.example.com:6385 compute_legacy:https://myopenstack.example.com:8774/v2/04e6cec0079446c187e6a7b74ea82347 compute:https://myopenstack.example.com:8774/v2.1 alarming:https://myopenstack.example.com:8042 volume:https://myopenstack.example.com:8776/v1/04e6cec0079446c187e6a7b74ea82347 volumev3:https://myopenstack.example.com:8776/v3/04e6cec0079446c187e6a7b74ea82347 orchestration:https://myopenstack.example.com:8004/v1/04e6cec0079446c187e6a7b74ea82347 network:https://myopenstack.example.com:9696 s3:https://myopenstack.example.com:8080 metering:https://myopenstack.example.com:8777 artifact:https://myopenstack.example.com:9494 cloudformation:https://myopenstack.example.com:8000/v1 volumev2:https://myopenstack.example.com:8776/v2/04e6cec0079446c187e6a7b74ea82347 identity:https://myopenstack.example.com:5000/v2.0]]} Launching controller instance(s) on test/RegionOne... 06:06:05 DEBUG goose :22 performing API version discovery for "https://myopenstack.example.com:8774/" 06:06:05 DEBUG goose :22 discovered API versions: [{Version:{major:2 minor:0} Links:[{Href:https://myopenstack.example.com:8774/v2/ Rel:self}] Status:SUPPORTED} {Version:{major:2 minor:1} Links:[{Href:https://myopenstack.example.com:8774/v2.1/ Rel:self}] Status:CURRENT}] 06:06:05 DEBUG juju.environs.instances image.go:64 instance constraints {region: RegionOne, series: xenial, arches: [amd64], constraints: mem=3584M, storage: []} 06:06:05 DEBUG juju.environs.instances image.go:70 matching constraints {region: RegionOne, series: xenial, arches: [amd64], constraints: mem=3584M, storage: []} against possible image metadata [{Id:28f65085-0d54-4f3a-a53f-a58dd6aafa3b Arch:amd64 VirtType:}] 06:06:05 INFO juju.environs.instances image.go:106 find instance - using image with id: 28f65085-0d54-4f3a-a53f-a58dd6aafa3b 06:06:05 DEBUG juju.cloudconfig.instancecfg instancecfg.go:781 Setting numa ctl preference to false 06:06:05 DEBUG juju.service discovery.go:63 discovered init system "systemd" from series "xenial" 06:06:05 DEBUG juju.provider.openstack provider.go:984 openstack user data; 850 bytes 06:06:05 DEBUG juju.provider.openstack provider.go:996 using network id "5c7cd500-c581-4491-86fa-af95a71e8c18" 06:06:05 DEBUG goose :22 performing API version discovery for "https://myopenstack.example.com:9696/" 06:06:05 DEBUG goose :22 discovered API versions: [{Version:{major:2 minor:0} Links:[{Href:http://myopenstack.example.com:9696/v2.0 Rel:self}] Status:CURRENT}] 06:06:10 INFO juju.provider.openstack provider.go:1085 started instance "616029d4-d6ca-414a-bc39-122a946093e2" 06:06:10 DEBUG juju.provider.openstack provider.go:1089 allocating public IP address for openstack node 06:06:13 INFO juju.provider.common destroy.go:20 destroying model "controller" 06:06:13 INFO juju.provider.common destroy.go:31 destroying instances 06:06:15 DEBUG juju.provider.openstack provider.go:1129 terminating instances [616029d4-d6ca-414a-bc39-122a946093e2] 06:06:15 INFO juju.provider.common destroy.go:51 destroying storage 06:06:15 DEBUG juju.provider.openstack cinder.go:81 volume URL: https://myopenstack.example.com:8776/v2/04e6cec0079446c187e6a7b74ea82347 06:06:16 DEBUG juju.provider.openstack firewaller.go:294 deleting security group "juju-4fb2f763-ab9b-4b7d-8f92-fcae4f5e85e3-296abafa-cbec-441e-8dc2-d5e93274db7a-global" 06:06:16 DEBUG juju.provider.openstack firewaller.go:294 deleting security group "juju-4fb2f763-ab9b-4b7d-8f92-fcae4f5e85e3-296abafa-cbec-441e-8dc2-d5e93274db7a" 06:06:24 ERROR cmd supercommand.go:458 failed to bootstrap model: cannot start bootstrap instance: cannot allocate a public IP as needed: could not find an external network in availablity zone 06:06:24 DEBUG cmd supercommand.go:459 (error details: [{github.com/juju/juju/cmd/juju/commands/bootstrap.go:574: failed to bootstrap model} {github.com/juju/juju/provider/common/bootstrap.go:47: } {github.com/juju/juju/provider/common/bootstrap.go:179: cannot start bootstrap instance} {github.com/juju/juju/provider/openstack/provider.go:1091: cannot allocate a public IP as needed} {github.com/juju/juju/provider/openstack/networking.go:137: could not find an external network in availablity zone}]) When setting use-floating-ip to false, bootstrap works. And I am able to assing floating ip's through Horizon.