openstackdevstackopenstack-horizonopenstack-glance

OpenStack multi-node setup doesn't show VM images on Dashboard


I'm new to OpenStack and I used DevStack to configure a multi-node dev environment, currently compound of a controller and two nodes. I followed the official documentation and used the development version of DevStack from the official git repo. The controller was set up in a fresh Ubuntu Server 16.04. I automated all the steps described in the docs using some scripts I made available here.

The issue is that my registered VM images don't appear on the Dashboard. The image page is just empty. When I install a single-node setup, everything works fine.

When I run openstack image list or glance image-list, the image registered during the installation process is listed as below, but it doesn't appear at the Dashboard.

----------------------------------------------------------
| ID                 | Name                     | Status | 
----------------------------------------------------------
| f1db310f-56d6-4f38 | cirros-0.3.5-x86_64-disk | active |
----------------------------------------------------------

openstack --version openstack 3.16.1

glance --version glance 2.12.1.

I've googled a lot but got no clue. Is there any special configuration to make images available in multi-node setup? Thanks.

UPDATE 1

I tried to set the image as shared using glance image-update --visibility shared f1db310f-56d6-4f38-b5da-11a714203478, then to add it to all listed projects (openstack project list) using the command openstack image add project image_name project_name but it doesn't work either.

UPDATE 2

I've included the command source /opt/stack/devstack/openrc admin admin inside my ~/.profile file so that all environment variables are set. It defines the username and project name as admin, but I've already tried to use the default demo project and demo username.

All env variables defined by the script is shown below.

declare -x OS_AUTH_TYPE="password"
declare -x OS_AUTH_URL="http://10.105.0.40/identity"
declare -x OS_AUTH_VERSION="3"
declare -x OS_CACERT=""
declare -x OS_DOMAIN_NAME="Default"
declare -x OS_IDENTITY_API_VERSION="3"
declare -x OS_PASSWORD="stack"
declare -x OS_PROJECT_DOMAIN_ID="default"
declare -x OS_PROJECT_NAME="admin"
declare -x OS_REGION_NAME="RegionOne"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"
declare -x OS_USER_DOMAIN_ID="default"
declare -x OS_USER_DOMAIN_NAME="Default"
declare -x OS_VOLUME_API_VERSION="3"

When I type openstack domain list I get the domain list below.

----------------------------------------------------
| ID      | Name    | Enabled | Description        |
----------------------------------------------------
| default | Default | True    | The default domain |
----------------------------------------------------

As the env variables show, the domain is set as the default one.


Solution

  • After reviewing all the installation process, the issue was due to an incorrect floating IP range defined inside the local.conf file.

    The FLOATING_RANGE variable in such a file must be defined as a subnet of the node network. For instance, my controller IP is 10.105.0.40/24 while the floating IP range is 10.105.0.128/25.

    I just forgot to change the FLOATING_RANGE variable (I was using the default value as shown here).