Openstack can be deployed in a number of ways. A popular tool for deployment is Kayobe which deploys the Openstack services to machines as docker containers.

Kayobe uses kolla-ansible to automate the deployment of Openstack services.

Kayobe

# Configure Seed hypervisor
kayobe seed hypervisor host configure

# Configure a Seed host
kayobe seed host configure

# Configure an overcloud host
kayobe overcloud host configure

Kayobe has global configuration for each of these type of hosts under $KAYOBE_CONFIG_PATH. The configuration files names represent the host type.

seed.yml
controller.yml
compute.yml

Service Deployment

With the Kayobe host configured, the services can be deployed.

# Deploy services for seed host
kayobe seed service deploy

# Deploy services for overcloud hosts
kayobe overcloud service deploy

Service Upgrade

This docs assumes an Openstack deployment with Kayobe. Official Github docs for updates can be found here

Overcloud

# Make database backup
kayobe overcloud database backup

# Pull host containers
kayobe overcloud container image pull

# Update host packages
kayobe overcloud host package update --packages "*"

# Update host components (pip packages etc.)
kayobe overcloud host upgrade

# Stop health manager service (from controllers)
# Checking for loadbalancer states to see if they need to failover (upgrade can cause them to go into an error state)
# Loadbalancers wont come out of error state
docker stop octavia_health_manager

# Upgrade services
# Skip sensitive services like nova and networking services
kayobe overcloud service upgrade --kolla-skip-tags neutron,nova,openvswitch