snap-nova/snapcraft.yaml

129 lines
3.9 KiB
YAML

name: nova
version: ocata
summary: OpenStack Compute Service (nova)
description: |
OpenStack Nova provides a cloud computing fabric controller,
supporting a wide variety of compute technologies, including
.
libvirt (KVM, Xen, LXC and more),
LXD
Hyper-V
VMware
XenServer
OpenStack Ironic.
.
This snap provides the Nova controller component of an OpenStack
deployment.
confinement: classic
grade: devel
apps:
api:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-api-os-compute
daemon: simple
uwsgi:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
OS_PLACEMENT_CONFIG_DIR=$SNAP_COMMON/etc/nova
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-uwsgi
daemon: simple
nginx:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
LD_LIBRARY_PATH=$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-nginx
daemon: forking
conductor:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-conductor
daemon: simple
scheduler:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-scheduler
daemon: simple
consoleauth:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-consoleauth
daemon: simple
manage:
command: >
env PYTHONPATH=$PYTHONPATH:$SNAP/lib/python2.7/site-packages
$SNAP/usr/bin/python2 $SNAP/bin/snap-openstack nova-manage
aliases:
- nova-manage
parts:
nova:
after: [python]
plugin: python
python-version: python2
source: http://tarballs.openstack.org/nova/nova-stable-ocata.tar.gz
python-packages:
- pymysql
- uwsgi
- python-memcached
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/ocata/upper-constraints.txt
build-packages:
- gcc
- libffi-dev
- libssl-dev
- libxml2-dev
- libxslt1-dev
stage:
- -usr/bin/2to3
- -usr/bin/pydoc
- -usr/bin/python2.7
- -usr/lib/python2.7
install: |
touch $SNAPCRAFT_PART_INSTALL/lib/python2.7/site-packages/paste/__init__.py
touch $SNAPCRAFT_PART_INSTALL/lib/python2.7/site-packages/repoze/__init__.py
export SNAP_ROOT="../../../"
export SNAP_SITE_PACKAGES="$SNAPCRAFT_PART_INSTALL/lib/python2.7/site-packages"
patch -d $SNAP_SITE_PACKAGES -p1 < $SNAP_ROOT/patches/oslo-config-dirs.patch
templates:
after: [nova]
plugin: dump
source: snap
config:
after: [nova]
plugin: dump
source: http://tarballs.openstack.org/nova/nova-stable-ocata.tar.gz
filesets:
etc:
- etc/nova/*.conf
- etc/nova/*.ini
- etc/nova/*.json
- etc/nova/rootwrap.d
stage: [$etc]
prime: [$etc]
nginx:
source: http://www.nginx.org/download/nginx-1.13.0.tar.gz
plugin: autotools
configflags:
- --prefix=/usr
- --http-log-path=/var/snap/nova/common/log/nginx-access.log
- --error-log-path=/var/snap/nova/common/log/nginx-error.log
- --lock-path=/var/snap/nova/common/lock/nginx.lock
- --pid-path=/var/snap/nova/common/run/nginx.pid
build-packages:
- libpcre3-dev
- libssl-dev
python:
source: https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
plugin: autotools
configflags:
- --prefix=/usr
- --enable-shared
- --enable-unicode=ucs4
build-packages:
- libssl-dev
prime:
- -usr/include
install:
$SNAPCRAFT_PART_INSTALL/usr/bin/python2 -m ensurepip