Snap package for Nova
Go to file
Corey Bryant 1388b583b5 Switch to classic confinement
Classic confinement allows the snap to behave like a traditionally
packaged application with full access to the system, and enables the
use of traditional directories such as /etc and /var/log.

We will continue to store all of the snap's files in $SNAP* directories.
This enables the snap to cleanup after itself if it is removed. However,
traditional directory locations are symlinked to their corresponding
$SNAP* directories.

For example, nova configs are installed in $SNAP_COMMON/etc/nova
which has a symlink at /etc/nova.

The nova apps then use the traditional directories when running
commands and services.

Change-Id: Ie21c66007a37b90ac3bca042505bad332fa76543
2017-03-21 13:52:23 +00:00
snap Switch to classic confinement 2017-03-21 13:52:23 +00:00
.gitignore Baseline nova snap 2016-11-22 14:35:13 +00:00
.gitreview Add gitreview configuration 2016-11-22 15:47:05 +00:00
bindep.txt Switch to classic confinement 2017-03-21 13:52:23 +00:00
CONTRIBUTING.rst Add CONTRIBUTING doc 2016-11-22 15:10:35 +00:00
LICENSE Add LICENSE 2016-11-22 15:47:52 +00:00
README.md Misc updates 2016-11-25 08:49:09 +00:00
requirements.txt Use snapcraft from packages 2017-01-04 09:21:18 +00:00
snapcraft.yaml Switch to classic confinement 2017-03-21 13:52:23 +00:00
tox.ini Switch to classic confinement 2017-03-21 13:52:23 +00:00

Nova Snap

This repository contains the source code of the snap for the OpenStack Compute service, Nova.

This snap specifically provides the compute controller daemons as part of a snap based OpenStack deployment.

Installing this snap

The nova snap can be installed directly from the snap store:

sudo snap install [--edge] nova

Configuring Nova

Snaps run in an AppArmor and seccomp confined profile, so don't read configuration from /etc/nova on the hosting operating system install.

This snap supports configuration via the $SNAP_COMMON writable area for the snap:

etc
├── nova
│   ├── nova.conf
└── nova.conf.d
    ├── database.conf
    ├── nova-snap.conf
    └── keystone.conf

The nova snap can be configured in a few ways.

Firstly the nova-server daemon will detect and read etc/nova/nova.conf if it exists so you can reuse your existing tooling to write to this file for classic style configuration.

Alternatively the nova daemons will load all configuration files from etc/nova.conf.d - in the above example, database and keystone authtoken are configured using configuration snippets in separate files in etc/nova.conf.d.

For reference, $SNAP_COMMON is typically located under /var/snap/nova/common.

Managing Nova

Currently all snap binaries must be run as root; for example, to run the nova-manage binary use:

sudo nova.manage

Restarting Nova services

To restart all nova services:

sudo systemctl restart snap.nova.*

or restart services individually:

sudo systemctl restart snap.nova.api

Building the Nova snap

Simply clone this repository and then install and run snapcraft:

git clone https://github.com/openstack-snaps/snap-nova
sudo apt install snapcraft
cd nova
snapcraft

Support

Please report any bugs related to this snap on Launchpad.

Alternatively you can find the OpenStack Snap team in #openstack-snaps on Freenode IRC.