Jump to: navigation, search


< StarlingX‎ | Containers
Revision as of 11:50, 30 April 2019 by Ovidiu.poncea (talk | contribs) (Setup Partitions for Controller-1)

Installing StarlingX with containers: All in One Duplex configuration


  • January 24, 2019: Initial draft
  • January 28, 2019: Configure datanetworks in sysinv, prior to referencing it in the 'system host-if-modify/host-if-add command'. Needed on loads Jan 25, 2019 or later.
  • January 29, 2019: Removed obsolete neutron host/interface configuration and updated DNS instructions.


These instructions are for an All-in-one duplex system (AIO-DX) in VirtualBox. Other configurations are in development.

Installing on bare metal is also possible, however the the process would have to be adapted for the specific hardware configuration.

Note: These instructions are valid for a load built on January 25, 2019 or later.

Building the Software

Refer to these instructions on the AIO SX page Building the Software

Setup the VirtualBox VM

Refer to these instructions on the AIO SX page Setup the VirtualBox VM

Remember to setup TWO VMs.

VirtualBox Nat Networking

Refer to these instructions on the AIO SX page VirtualBox Nat Networking

Setup Controller-0

Install StarlingX

Boot the VM from the ISO media. Select the following options for installation:

  • All-in-one Controller
  • Graphical Console
  • Standard Security Profile

Once booted, log into Controller-0 as user wrsroot, with password wrsroot. The first time you log in as wrsroot, you are required to change your password. Enter the current password (wrsroot):

Changing password for wrsroot.
(current) UNIX Password: wrsroot

Enter a new password for the wrsroot account and confirm it.

Run config_controller

sudo config_controller

Use default settings during config_controller, except for the following:

  • System mode: duplex
  • If you do not have direct access to the google DNS nameserver(s) , you will need to configure that when prompted. Press Enter to choose the default, or type a new entry.
  • If you do not have direct access to the public docker registry (https://hub.docker.com/u/starlingx) and instead use a proxy for internet access, you will need to add proxy information when prompted. (Storyboard 2004710 was merged on Jan 30, 2019. )

After you apply the configuration

The following configuration will be applied:

System Configuration
Time Zone: UTC
System mode: duplex

PXEBoot Network Configuration
Separate PXEBoot network not configured
PXEBoot Controller floating hostname: pxecontroller

Management Network Configuration
Management interface name: enp0s8
Management interface: enp0s8
Management interface MTU: 1500
Management subnet:
Controller floating address:
Controller 0 address:
Controller 1 address:
NFS Management Address 1:
NFS Management Address 2:
Controller floating hostname: controller
Controller hostname prefix: controller-
OAM Controller floating hostname: oamcontroller
Dynamic IP address allocation is selected
Management multicast subnet:

Infrastructure Network Configuration
Infrastructure interface not configured

Kubernetes Cluster Network Configuration
Cluster pod network subnet:
Cluster service network subnet:
Cluster host interface name: enp0s8
Cluster host interface: enp0s8
Cluster host interface MTU: 1500
Cluster host subnet:

External OAM Network Configuration
External OAM interface name: enp0s3
External OAM interface: enp0s3
External OAM interface MTU: 1500
External OAM subnet:
External OAM gateway address:
External OAM floating address:
External OAM 0 address:
External OAM 1 address:

DNS Configuration
Nameserver 1:
Nameserver 2:

Apply the above configuration? [y/n]: y

Applying configuration (this will take several minutes):

01/08: Creating bootstrap configuration ... DONE
02/08: Applying bootstrap manifest ... DONE
03/08: Persisting local configuration ... DONE
04/08: Populating initial system inventory ... DONE
05/08: Creating system configuration ... DONE
06/08: Applying controller manifest ... DONE
07/08: Finalize controller configuration ... DONE
08/08: Waiting for service activation ... DONE

Configuration was applied

Please complete any out of service commissioning steps with system commands and
unlock controller to proceed.

Provisioning the platform

Set the ntp server

Refer to these instructions on the AIO SX page Set the ntp server

Configure the vswitch type (optional)

Refer to these instructions on the AIO SX page Configure the vswitch type

Configure data interfaces

Refer to these instructions on the AIO SX page Configure data interfaces

Prepare the host for running the containerized services

Refer to these instructions on the AIO SX page Prepare the host for running the containerized services

Setup partitions for Controller-0

Refer to these instructions on the AIO SX page Setup partitions for Controller-0

Configure Ceph for Controller-0

Refer to these instructions on the AIO SX page Configure Ceph for Controller-0

Unlock Controller-0

source /etc/platform/openrc
system host-unlock controller-0

Boot the second AIO controller

Boot the second VM (without an ISO media mounted) Hit F12 immediately when the VM starts to select a different boot option - select the "lan" option to force a network boot.

At the controller-1 console, you will see a message instructing you to configure the personality of the node. Do this from a shell on controller-0 as follows:

source /etc/platform/openrc
system host-list

Results indicate that ID 2 is the un-provisioned controller

| id | hostname     | personality | administrative | operational | availability |
| 1  | controller-0 | controller  | unlocked       | enabled     | available    |
| 2  | None         | None        | locked         | disabled    | offline      |
system host-update 2 personality=controller

The packages will install and the controller will reboot.

Provisioning the second AIO controller

Configure Data Interfaces for Controller-1

source /etc/platform/openrc
export COMPUTE='controller-1' 

echo ">>> Configuring OAM Network"
system host-if-modify -n oam0 -c platform --networks oam ${COMPUTE} $(system host-if-list -a $COMPUTE  $NOWRAP | awk -v OAM_IF=$OAM_IF '{if ($4 == OAM_IF) { print $2;}}')

echo ">>> Configuring Cluster Host Interface"
system host-if-modify $COMPUTE mgmt0 --networks cluster-host

echo ">>> Configuring Data Networks"
system host-port-list ${COMPUTE} $NOWRAP > ${SPL}  
system host-if-list -a ${COMPUTE} $NOWRAP > ${SPIL}  
DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}')  
DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}')  
DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}')  
DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}')  
DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}')  
DATA1PORTNAME=$(cat  $SPL | grep ${DATA1PCIADDR} | awk '{print $4}')  
system host-if-modify -m 1500 -n data0 -p ${PHYSNET0} -c data ${COMPUTE} ${DATA0IFUUID}  
system host-if-modify -m 1500 -n data1 -p ${PHYSNET1} -c data ${COMPUTE} ${DATA1IFUUID}

Prepare Controller-1 for running the containerized services

source /etc/platform/openrc

system host-label-assign controller-1 openstack-control-plane=enabled
system host-label-assign controller-1 openstack-compute-node=enabled
system host-label-assign controller-1 openvswitch=enabled
system host-label-assign controller-1 sriov=enabled

Setup Partitions for Controller-1

These disks are added on unlock. Using same sizes as controller-0. 24G for nova-local, 6G for cgts-vg

source /etc/platform/openrc
export COMPUTE=controller-1

echo ">>> Getting root disk info"
ROOT_DISK=$(system host-show ${COMPUTE} | grep rootfs | awk '{print $4}')
ROOT_DISK_UUID=$(system host-disk-list ${COMPUTE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}')
echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID"

echo ">>>> Configuring nova-local"
NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${NOVA_SIZE})
NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}')
system host-lvg-add ${COMPUTE} nova-local
system host-pv-add ${COMPUTE} nova-local ${NOVA_PARTITION_UUID}

echo ">>>> Extending cgts-vg"
CGTS_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${PARTITION_SIZE})
CGTS_PARTITION_UUID=$(echo ${CGTS_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}')
system host-pv-add ${COMPUTE} cgts-vg ${CGTS_PARTITION_UUID}

Setup Ceph for Controller-1

source /etc/platform/openrc

echo ">>> Get disk & tier info"
DISKS=$(system host-disk-list ${HOST})
TIERS=$(system storage-tier-list ceph_cluster)
echo "Disks:"
echo "$DISKS"
echo "Tiers:"
echo "$TIERS"

echo ">>> Add OSDs to primary tier"
system host-stor-add ${HOST} $(echo "$DISKS" | grep /dev/sdb | awk '{print $2}') --tier-uuid $(echo "$TIERS" | grep storage | awk '{print $2}')

echo ">>> system host-stor-list ${HOST}"
system host-stor-list ${HOST}
echo ">>> ceph osd tree"
ceph osd tree

Unlock Controller-1

source /etc/platform/openrc
system host-unlock controller-1

Wait for controller-1 to reboot before proceeding.

Using sysinv to bring up/down the containerized services

Generate the stx-openstack application tarball

Refer to these instructions on the AIO SX page Generate the stx-openstack application tarball

Stage application for deployment

Refer to these instructions on the AIO SX page Stage application for deployment

Bring Up Services

Refer to these instructions on the AIO SX page Bring Up Services

Verify the cluster endpoints

Refer to these instructions on the AIO SX page here

Provider/tenant networking setup

Refer to these instructions on the AIO SX page here

Additional Setup Instructions

Refer to these instructions on the AIO SX page Additional Setup Instructions

Horizon access

Refer to these instructions on the AIO SX page here

Known Issues and Troubleshooting