I’m bootstrapping a controller in an openstack cluster. The bootstrap basically works, but it bombs out towards the end, when it comes to confirming controller API accessibility.
15:23:04 INFO cmd bootstrap.go:653 Bootstrap agent now started 15:23:05 DEBUG juju.provider.openstack provider.go:498 instance 5c9bb826-5ace-4d89-9b35-6ace2d3d5a96 has floating IP address: 172.16.2.180 15:23:05 INFO juju.juju api.go:328 API endpoints changed from  to [172.16.2.180:17070 10.99.2.199:17070] 15:23:05 INFO cmd controller.go:93 Contacting Juju controller at 172.16.2.180 to verify accessibility... 15:23:05 INFO juju.juju api.go:78 connecting to API addresses: [172.16.2.180:17070 10.99.2.199:17070] 15:23:09 INFO cmd controller.go:135 Still waiting for API to become available: unable to connect to API: dial tcp 172.16.2.180:17070: connect: connection refused 15:23:09 INFO juju.juju api.go:78 connecting to API addresses: [172.16.2.180:17070 10.99.2.199:17070] 15:23:13 ERROR juju.cmd.juju.commands bootstrap.go:881 unable to contact api server after 2 attempts: unable to connect to API: dial tcp 10.99.2.199:17070: connect: no route to host
Ignore the non-routing 10.99.2.199 address, that will never work.
The connection refused from 172.16.2.180 is because the API service is not started yet. If I bootstrap with --keep-broken, port 17070/tcp becomes open about 10 seconds after the bootstrap has failed.
The config bootstrap-retry-delay apparently only changes the delay for the SSH part of the bootstrap, not the controller reachability test.
Did I miss something?