Tools for writing OpenStack Snap packages
Go to file
Corey Bryant 144b820f53 Add support for copyfiles
Change-Id: If270801252d95d0a7fa1ece301516ebec216702c
2017-03-15 22:15:39 -04:00
doc/source Add some basic unit tests 2016-11-21 12:29:29 +00:00
releasenotes Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
snap_openstack Add support for copyfiles 2017-03-15 22:15:39 -04:00
.coveragerc Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
.gitignore Fixup jinja2 loader configuration 2016-11-10 09:58:20 +00:00
.gitreview Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
.mailmap Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
.testr.conf Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
babel.cfg Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
CONTRIBUTING.rst Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
HACKING.rst Update HACKING format 2016-11-10 12:43:45 +00:00
LICENSE Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
MANIFEST.in Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
README.rst Tweak README 2016-11-10 12:18:22 +00:00
requirements.txt Add some basic unit tests 2016-11-21 12:29:29 +00:00
setup.cfg Baseline commit 2016-11-10 09:18:28 +00:00
setup.py Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
test-requirements.txt Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
tox.ini Add some basic unit tests 2016-11-21 12:29:29 +00:00

snap.openstack

Helpers for writing Snaps for OpenStack

This project provides a wrapper for automatically wrapping openstack commands in snaps, building out appropriate Oslo configuration and logging options on the command line.

This wrapper is used by including a snap-openstack.yaml configuration file into the root of a snap.

Setup is executed for all entry points prior to execution snap-openstack will assure that templated files are in place and that any directory structure in $SNAP_COMMON is created.

setup:
  dirs:
    - "{snap_common}/etc/nova.conf.d"
    - "{snap_common}/etc/nova"
    - "{snap_common}/logs"
  templates:
    "nova-snap.conf.j2": "{snap_common}/etc/nova.conf.d/nova-snap.conf"

snap-openstack.yaml should also declare entry points for the snap:

entry_points:
  nova-manage:
    binary: nova-manage
    config-files:
      - "{snap}/etc/nova/nova.conf"
      - "{snap_common}/etc/nova/nova.conf"
    config-dirs:
      - "{snap_common}/etc/nova.conf.d"
    log-file: "{snap_common}/logs/nova-manage.log"

Executes the following:

nova-manage --config-file=$SNAP/etc/nova/nova,conf \
            --config-file=$SNAP_COMMON/etc/nova/nova.conf \
            --config-dir=$SNAP_COMMON/etc/nova.conf.d \
            --log-file=$SNAP_COMMON/logs/nova-manage.log

entry points are designed to be executed from the snapcraft.yaml apps section using:

command: snap-openstack nova-manage

any additional arguments provided will be passed to the underlying binary.

Features

  • Support for classic mode snap use