597ffc99d8
This fixes an issue where we weren't creating a netplan config and/or and entry in /etc/network/interfaces for br-ex, and thus losing external access to our virtual networks after reboot. Since we don't actually want to touch the host system's networking config, we just drop a oneshot daemon into place that sets br-ex up each time the snap services are started.
809 lines
21 KiB
YAML
809 lines
21 KiB
YAML
name: microstack
|
|
version: rocky
|
|
summary: OpenStack on your laptop.
|
|
description: |
|
|
Microstack gives you an easy way to develop and test OpenStack
|
|
workloads on your laptop.
|
|
grade: stable
|
|
confinement: classic
|
|
environment:
|
|
LD_LIBRARY_PATH: $SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET
|
|
PATH: $SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH
|
|
LC_ALL: C
|
|
OS_PLACEMENT_CONFIG_DIR: $SNAP/etc/nova/
|
|
# admin rc (TODO: put this someplace more sensible)
|
|
OS_PROJECT_DOMAIN_NAME: default
|
|
OS_USER_DOMAIN_NAME: default
|
|
OS_PROJECT_NAME: admin
|
|
OS_USERNAME: admin
|
|
OS_PASSWORD: keystone
|
|
OS_AUTH_URL: http://localhost:5000
|
|
OS_IDENTITY_API_VERSION: 3
|
|
OS_IMAGE_API_VERSION: 2
|
|
|
|
apps:
|
|
# Openstack
|
|
openstack:
|
|
command: openstack
|
|
# plugs:
|
|
# - network
|
|
|
|
# OpenStack Service Configuration
|
|
configure:
|
|
command: configure-openstack
|
|
# plugs:
|
|
# - network
|
|
|
|
# Keystone
|
|
keystone-uwsgi:
|
|
command: snap-openstack keystone-uwsgi
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
keystone-manage:
|
|
command: snap-openstack keystone-manage
|
|
# plugs:
|
|
# - network
|
|
|
|
# Nova
|
|
nova-uwsgi:
|
|
command: snap-openstack nova-uwsgi
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
nova-api:
|
|
command: snap-openstack nova-api-os-compute
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
nova-conductor:
|
|
command: snap-openstack nova-conductor
|
|
daemon: simple
|
|
# plugs:
|
|
# - network
|
|
nova-scheduler:
|
|
command: snap-openstack nova-scheduler
|
|
daemon: simple
|
|
# plugs:
|
|
# - network
|
|
nova-compute:
|
|
command: snap-openstack nova-compute
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
# - network-control
|
|
# - firewall-control
|
|
# - hardware-observe
|
|
# - libvirt
|
|
# - openvswitch
|
|
nova-api-metadata:
|
|
command: snap-openstack nova-api-metadata
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
# - firewall-control
|
|
nova-manage:
|
|
command: snap-openstack nova-manage
|
|
# plugs:
|
|
# - network
|
|
|
|
# Neutron
|
|
neutron-api:
|
|
command: snap-openstack neutron-server
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
neutron-openvswitch-agent:
|
|
command: snap-openstack neutron-openvswitch-agent
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
# - network-control
|
|
# - network-observe
|
|
# - firewall-control
|
|
# - process-control
|
|
# - system-observe
|
|
# - openvswitch
|
|
neutron-l3-agent:
|
|
command: snap-openstack neutron-l3-agent
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
# - network-control
|
|
# - network-observe
|
|
# - firewall-control
|
|
# - process-control
|
|
# - system-observe
|
|
# - openvswitch
|
|
neutron-dhcp-agent:
|
|
command: snap-openstack neutron-dhcp-agent
|
|
daemon: simple
|
|
# plugs:
|
|
# - network
|
|
# - network-bind
|
|
# - network-control
|
|
# - network-observe
|
|
# - process-control
|
|
# - system-observe
|
|
# - openvswitch
|
|
neutron-metadata-agent:
|
|
command: snap-openstack neutron-metadata-agent
|
|
daemon: simple
|
|
# plugs:
|
|
# - network
|
|
# - network-bind
|
|
# - network-control
|
|
neutron-ovs-cleanup:
|
|
command: snap-openstack neutron-ovs-cleanup
|
|
# plugs:
|
|
# - network
|
|
# - network-control
|
|
# - openvswitch
|
|
neutron-netns-cleanup:
|
|
command: snap-openstack neutron-netns-cleanup
|
|
# plugs:
|
|
# - network
|
|
# - network-control
|
|
neutron-db-manage:
|
|
command: snap-openstack neutron-db-manage
|
|
# plugs:
|
|
# - network
|
|
|
|
# Glance
|
|
glance-api:
|
|
command: snap-openstack glance-api
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
registry:
|
|
command: snap-openstack glance-registry
|
|
daemon: simple
|
|
# plugs:
|
|
# - network
|
|
# - network-bind
|
|
glance-manage:
|
|
command: snap-openstack glance-manage
|
|
# plugs:
|
|
# - network
|
|
|
|
# Openstack Shared Services
|
|
nginx:
|
|
command: snap-openstack nginx
|
|
daemon: forking
|
|
# plugs:
|
|
# - network-bind
|
|
|
|
# Openvswitch
|
|
ovs-vswitchd:
|
|
command: ovs-wrapper $SNAP/share/openvswitch/scripts/ovs-ctl --no-ovsdb-server --no-monitor --system-id=random start
|
|
stop-command: ovs-wrapper $SNAP/share/openvswitch/scripts/ovs-ctl --no-ovsdb-server stop
|
|
passthrough:
|
|
after: [ovsdb-server]
|
|
daemon: forking
|
|
# plugs:
|
|
# - network
|
|
# - network-bind
|
|
# - network-control
|
|
# - openvswitch-support
|
|
# - process-control
|
|
# - system-trace
|
|
ovsdb-server:
|
|
command: ovs-wrapper $SNAP/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd --no-monitor --system-id=random start
|
|
stop-command: ovs-wrapper $SNAP/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd stop
|
|
daemon: forking
|
|
# plugs:
|
|
# - network
|
|
# - network-bind
|
|
# - network-control
|
|
# - openvswitch-support
|
|
# - process-control
|
|
# - system-trace
|
|
ovs-vsctl:
|
|
command: ovs-wrapper $SNAP/bin/ovs-vsctl
|
|
# plugs:
|
|
# - network
|
|
ovs-appctl:
|
|
command: ovs-wrapper $SNAP/bin/ovs-appctl
|
|
# plugs:
|
|
# - network
|
|
ovs-ofctl:
|
|
command: ovs-wrapper $SNAP/bin/ovs-ofctl
|
|
# plugs:
|
|
# - network
|
|
ovs-dpctl:
|
|
command: ovs-wrapper $SNAP/bin/ovs-dpctl
|
|
# plugs:
|
|
# - network
|
|
|
|
external-bridge:
|
|
command: bin/setup-br-ex
|
|
daemon: oneshot
|
|
passthrough:
|
|
after: [ovs-vswitchd]
|
|
# plugs:
|
|
# - network
|
|
|
|
# Libvirt/Qemu
|
|
libvirtd:
|
|
command: libvirtd
|
|
daemon: simple
|
|
environment:
|
|
LD_LIBRARY_PATH: $SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio
|
|
virsh:
|
|
command: virsh
|
|
|
|
# MySQL
|
|
mysqld:
|
|
command: mysql-start-server
|
|
daemon: simple
|
|
# plugs:
|
|
# - process-control
|
|
# - network
|
|
# - network-bind
|
|
mysql:
|
|
command: mysql-start-client
|
|
# plugs:
|
|
# - process-control
|
|
# - network
|
|
|
|
# RabbitMQ
|
|
rabbitmq-server:
|
|
command: rabbitmq-server
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
environment:
|
|
HOME: $SNAP_COMMON/lib/rabbitmq
|
|
rabbitmqctl:
|
|
command: rabbitmqctl
|
|
# plugs:
|
|
# - network
|
|
environment:
|
|
HOME: $SNAP_COMMON/lib/rabbitmq
|
|
rabbitmq-plugins:
|
|
command: rabbitmq-plugins
|
|
environment:
|
|
HOME: $SNAP_COMMON/lib/rabbitmq
|
|
|
|
# Memcached
|
|
memcached:
|
|
command: memcached -u root -v
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
|
|
# Cinder
|
|
cinder-uwsgi:
|
|
command: snap-openstack cinder-uwsgi
|
|
# daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
cinder-backup:
|
|
command: snap-openstack cinder-backup
|
|
# daemon: simple
|
|
# plugs:
|
|
# - network
|
|
cinder-manage:
|
|
command: snap-openstack cinder-manage
|
|
# plugs:
|
|
# - network
|
|
cinder-scheduler:
|
|
command: snap-openstack cinder-scheduler
|
|
# daemon: simple
|
|
# plugs:
|
|
# - network
|
|
cinder-volume:
|
|
command: snap-openstack cinder-volume
|
|
# daemon: simple
|
|
# plugs:
|
|
# - network
|
|
|
|
# Horizon
|
|
horizon-uwsgi:
|
|
command: snap-openstack horizon-uwsgi
|
|
daemon: simple
|
|
# plugs:
|
|
# - network-bind
|
|
|
|
launch:
|
|
command: bin/launch.sh
|
|
# plugs:
|
|
# - network
|
|
|
|
parts:
|
|
# OpenStack Python Projects, keyed off Keystone
|
|
openstack-projects:
|
|
plugin: python
|
|
python-version: python2
|
|
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
|
source: http://tarballs.openstack.org/keystone/keystone-stable-rocky.tar.gz
|
|
python-packages:
|
|
- libvirt-python
|
|
- oslo.cache[dogpile]
|
|
- pymysql
|
|
- uwsgi
|
|
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
|
- http://tarballs.openstack.org/nova/nova-stable-rocky.tar.gz
|
|
- http://tarballs.openstack.org/neutron/neutron-stable-rocky.tar.gz
|
|
- http://tarballs.openstack.org/glance/glance-stable-rocky.tar.gz
|
|
- http://tarballs.openstack.org/cinder/cinder-stable-rocky.tar.gz
|
|
- http://tarballs.openstack.org/horizon/horizon-stable-rocky.tar.gz
|
|
- python-cinderclient
|
|
- python-openstackclient
|
|
- python-swiftclient
|
|
build-packages:
|
|
- gcc
|
|
- libffi-dev
|
|
- libssl-dev
|
|
- libxml2-dev
|
|
- libxslt1-dev
|
|
- libvirt-dev
|
|
stage-packages:
|
|
- conntrack
|
|
- coreutils
|
|
- haproxy
|
|
override-build: |
|
|
# Ensure libvirt is discovered from previous built part
|
|
export PKG_CONFIG_PATH=$SNAPCRAFT_STAGE/lib/pkgconfig
|
|
snapcraftctl build
|
|
override-prime: |
|
|
snapcraftctl prime
|
|
# Now that everything is built, let's disable user site-packages
|
|
# as stated in PEP-0370
|
|
sed -i usr/lib/python2.7/site.py -e 's/^ENABLE_USER_SITE = None$/ENABLE_USER_SITE = False/'
|
|
# This is the last step, let's now compile all our pyc files.
|
|
# Ignore errors due to syntax issues in foobar python 2.
|
|
./usr/bin/python2.7 -m compileall . || true
|
|
|
|
keystone-config:
|
|
after: [openstack-projects]
|
|
plugin: dump
|
|
source: http://tarballs.openstack.org/keystone/keystone-stable-rocky.tar.gz
|
|
organize:
|
|
etc/*.conf: etc/keystone/
|
|
etc/*.ini: etc/keystone/
|
|
etc/*.json: etc/keystone/
|
|
etc/*.templates: etc/keystone/
|
|
|
|
filesets:
|
|
etc:
|
|
- etc/keystone/*
|
|
stage: [$etc]
|
|
prime: [$etc]
|
|
|
|
nova-config:
|
|
after: [openstack-projects]
|
|
plugin: dump
|
|
source: http://tarballs.openstack.org/nova/nova-stable-rocky.tar.gz
|
|
filesets:
|
|
etc:
|
|
- etc/nova/*
|
|
stage: [$etc]
|
|
prime: [$etc]
|
|
|
|
neutron-config:
|
|
after: [openstack-projects]
|
|
plugin: dump
|
|
source: http://tarballs.openstack.org/neutron/neutron-stable-rocky.tar.gz
|
|
organize:
|
|
etc/*.conf: etc/neutron/
|
|
etc/*.ini: etc/neutron/
|
|
etc/*.json: etc/neutron/
|
|
etc/rootwrap.d/*: etc/neutron/rootwrap.d/
|
|
filesets:
|
|
etc:
|
|
- etc/neutron/*
|
|
stage: [$etc]
|
|
prime: [$etc]
|
|
|
|
glance-config:
|
|
after: [openstack-projects]
|
|
plugin: dump
|
|
source: http://tarballs.openstack.org/glance/glance-stable-rocky.tar.gz
|
|
organize:
|
|
etc/*.conf: etc/glance/
|
|
etc/*.ini: etc/glance/
|
|
etc/*.json: etc/glance/
|
|
filesets:
|
|
etc:
|
|
- etc/glance/*
|
|
stage: [$etc]
|
|
prime: [$etc]
|
|
|
|
cinder-config:
|
|
after: [openstack-projects]
|
|
plugin: dump
|
|
source: http://tarballs.openstack.org/cinder/cinder-stable-rocky.tar.gz
|
|
organize:
|
|
etc/*.conf: etc/cinder/
|
|
etc/*.ini: etc/cinder/
|
|
etc/*.json: etc/cinder/
|
|
etc/*.templates: etc/cinder/
|
|
filesets:
|
|
etc:
|
|
- etc/cinder/*
|
|
stage: [$etc]
|
|
prime: [$etc]
|
|
|
|
horizon-config:
|
|
after: [openstack-projects]
|
|
plugin: dump
|
|
source: http://tarballs.openstack.org/horizon/horizon-stable-rocky.tar.gz
|
|
organize:
|
|
etc/*.conf: etc/horizon/
|
|
filesets:
|
|
etc:
|
|
- etc/horizon/*
|
|
stage: [$etc]
|
|
prime: [$etc]
|
|
|
|
# Snap patches
|
|
patches:
|
|
source: patches/
|
|
plugin: dump
|
|
organize:
|
|
'*' : patches/
|
|
prime:
|
|
- -*
|
|
|
|
openvswitch:
|
|
# TODO: figure out a better way to fetch the version
|
|
source: http://openvswitch.org/releases/openvswitch-2.10.1.tar.gz
|
|
plugin: autotools
|
|
build-packages:
|
|
- libssl-dev
|
|
- try: [libnuma-dev]
|
|
- libcap-ng-dev
|
|
- libpcap-dev
|
|
- libunbound-dev
|
|
- python-all
|
|
- python-six
|
|
- python-setuptools
|
|
stage-packages:
|
|
- uuid-runtime
|
|
- libunbound2
|
|
configflags:
|
|
- "--localstatedir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common"
|
|
- "--sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/etc"
|
|
after:
|
|
- patches
|
|
override-build: |
|
|
# Apply patches
|
|
for patch in ${SNAPCRAFT_STAGE}/patches/openvswitch/*.patch; do
|
|
echo "Applying $(basename "$patch") ..."
|
|
patch \
|
|
--batch \
|
|
--forward \
|
|
--strip 1 \
|
|
--input "$patch"
|
|
echo
|
|
done
|
|
snapcraftctl build
|
|
|
|
ovs-wrapper:
|
|
source: ./snap-wrappers/ovs
|
|
plugin: dump
|
|
after:
|
|
- openvswitch
|
|
organize:
|
|
ovs-wrapper: bin/ovs-wrapper
|
|
|
|
nginx:
|
|
source: http://www.nginx.org/download/nginx-1.13.0.tar.gz
|
|
plugin: autotools
|
|
after:
|
|
- patches
|
|
configflags:
|
|
- --prefix=/usr
|
|
- "--http-log-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/log/nginx-access.log"
|
|
- "--error-log-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/log/nginx-error.log"
|
|
- "--lock-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lock/nginx.lock"
|
|
- "--pid-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/run/nginx.pid"
|
|
- "--http-client-body-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_client_body"
|
|
- "--http-proxy-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_proxy"
|
|
- "--http-fastcgi-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_fastcgi"
|
|
- "--http-uwsgi-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_uwsgi"
|
|
- "--http-scgi-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_scgi"
|
|
- --with-http_ssl_module
|
|
build-packages:
|
|
- libpcre3-dev
|
|
- libssl-dev
|
|
- python-six
|
|
override-build: |
|
|
# Apply patches
|
|
for patch in ${SNAPCRAFT_STAGE}/patches/nginx/*.patch; do
|
|
echo "Applying $(basename "$patch") ..."
|
|
patch \
|
|
--batch \
|
|
--forward \
|
|
--strip 1 \
|
|
--input "$patch"
|
|
echo
|
|
done
|
|
snapcraftctl build
|
|
|
|
libxml2:
|
|
source: http://xmlsoft.org/sources/libxml2-2.9.4.tar.gz
|
|
plugin: autotools
|
|
|
|
# libvirt/qemu
|
|
qemu:
|
|
source: .
|
|
source-subdir: qemu-2.5+dfsg
|
|
plugin: autotools
|
|
stage-packages:
|
|
- seabios
|
|
- ipxe-qemu
|
|
- try:
|
|
- libnuma1
|
|
- libspice-server1
|
|
- libasound2
|
|
- libasyncns0
|
|
- libbluetooth3
|
|
- libboost-iostreams1.58.0
|
|
- libboost-random1.58.0
|
|
- libboost-system1.58.0
|
|
- libboost-thread1.58.0
|
|
- libcaca0
|
|
- libfdt1
|
|
- libflac8
|
|
- libiscsi2
|
|
- libjpeg-turbo8
|
|
- libnspr4
|
|
- libnss3
|
|
- libogg0
|
|
- libopus0
|
|
- libpixman-1-0
|
|
- libpulse0
|
|
- librados2
|
|
- librbd1
|
|
- libsdl1.2debian
|
|
- libsndfile1
|
|
- libusb-1.0-0
|
|
- libusbredirparser1
|
|
- libvorbis0a
|
|
- libvorbisenc2
|
|
- libx11-6
|
|
- libxau6
|
|
- libxcb1
|
|
- libxdmcp6
|
|
- libxext6
|
|
build-packages:
|
|
- acpica-tools
|
|
- libaio-dev
|
|
- libasound2-dev
|
|
- libattr1-dev
|
|
- libbluetooth-dev
|
|
- libcap-dev
|
|
- libcap-ng-dev
|
|
- libcurl4-gnutls-dev
|
|
- libfdt-dev
|
|
- gnutls-dev
|
|
- libiscsi-dev
|
|
- libncurses5-dev
|
|
- try: [libnuma-dev]
|
|
- libpixman-1-dev
|
|
- libpulse-dev
|
|
- librados-dev
|
|
- librbd-dev
|
|
- libsasl2-dev
|
|
- libsdl1.2-dev
|
|
- try: [libspice-server-dev, libspice-protocol-dev]
|
|
- libusb-1.0-0-dev
|
|
- libusbredirparser-dev
|
|
- linux-libc-dev
|
|
- uuid-dev
|
|
- xfslibs-dev
|
|
- libjpeg-dev
|
|
- zlib1g-dev
|
|
- libpng-dev
|
|
- wget
|
|
- dpkg-dev
|
|
- gcc
|
|
configflags:
|
|
- --disable-blobs
|
|
- --prefix=/snap/$SNAPCRAFT_PROJECT_NAME/current
|
|
- --localstatedir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
|
- --sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
|
- --extra-cflags=-DCONFIG_QEMU_DATAPATH='"/snap/$SNAPCRAFT_PROJECT_NAME/current/share/qemu:/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/share/seabios:/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/lib/ipxe/qemu"'
|
|
- --disable-user
|
|
- --disable-linux-user
|
|
- --enable-system
|
|
- --target-list=x86_64-softmmu
|
|
override-build: |
|
|
wget http://archive.ubuntu.com/ubuntu/pool/main/q/qemu/qemu_2.5+dfsg.orig.tar.xz
|
|
wget http://archive.ubuntu.com/ubuntu/pool/main/q/qemu/qemu_2.5+dfsg-5ubuntu10.33.debian.tar.xz
|
|
wget http://archive.ubuntu.com/ubuntu/pool/main/q/qemu/qemu_2.5+dfsg-5ubuntu10.33.dsc
|
|
dpkg-source -x qemu_*.dsc
|
|
snapcraftctl build
|
|
organize:
|
|
# Hack to shift installed qemu back to root of snap
|
|
# required to ensure that pathing to files etc works at
|
|
# runtime
|
|
# * is not used to avoid directory merge conflicts
|
|
snap/microstack/current/: ./
|
|
|
|
kvm-support:
|
|
plugin: nil
|
|
stage-packages:
|
|
- try: [msr-tools]
|
|
|
|
libvirt:
|
|
source: .
|
|
source-subdir: libvirt-1.3.1
|
|
plugin: autotools
|
|
build-packages:
|
|
- libxml2-dev
|
|
- libxml-libxml-perl
|
|
- libcurl4-gnutls-dev
|
|
- libncurses5-dev
|
|
- libreadline-dev
|
|
- zlib1g-dev
|
|
- libgcrypt20-dev
|
|
- libgnutls28-dev
|
|
- libyajl-dev
|
|
- libpcap0.8-dev
|
|
- libaudit-dev
|
|
- libdevmapper-dev
|
|
- libpciaccess-dev
|
|
- libnl-3-dev
|
|
- libnl-route-3-dev
|
|
- uuid-dev
|
|
- try: [libnuma-dev]
|
|
- wget
|
|
- dpkg-dev
|
|
stage-packages:
|
|
- try: [dmidecode]
|
|
- dnsmasq
|
|
- dnsmasq-utils
|
|
- ebtables
|
|
- libxml2
|
|
- libyajl2
|
|
- try: [libnuma1]
|
|
- libcurl3-gnutls
|
|
- libpciaccess0
|
|
configflags:
|
|
- --with-qemu
|
|
- --without-bhyve
|
|
- --without-xen
|
|
- --without-openvz
|
|
- --without-vmware
|
|
- --without-xenapi
|
|
- --without-esx
|
|
- --without-hyperv
|
|
- --without-lxc
|
|
- --without-vz
|
|
- --without-vbox
|
|
- --without-uml
|
|
- --without-sasl
|
|
- --without-storage-iscsi
|
|
- --without-storage-sheepdog
|
|
- --without-storage-rbd
|
|
- --without-storage-lvm
|
|
- --without-selinux
|
|
- --prefix=/snap/$SNAPCRAFT_PROJECT_NAME/current
|
|
- --localstatedir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
|
- --sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
|
- DNSMASQ=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/sbin/dnsmasq
|
|
- DMIDECODE=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/sbin/dmidecode
|
|
- OVSVSCTL=/snap/$SNAPCRAFT_PROJECT_NAME/current/bin/ovs-vsctl
|
|
- EBTABLES_PATH=/snap/$SNAPCRAFT_PROJECT_NAME/current/sbin/ebtables
|
|
- IPTABLES_PATH=/snap/$SNAPCRAFT_PROJECT_NAME/current/sbin/iptables
|
|
override-build: |
|
|
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1.orig.tar.gz
|
|
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1-1ubuntu10.24.debian.tar.xz
|
|
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1-1ubuntu10.24.dsc
|
|
dpkg-source -x libvirt*.dsc
|
|
snapcraftctl build
|
|
organize:
|
|
# Hack to shift installed libvirt back to root of snap
|
|
# required to ensure that pathing to files etc works at
|
|
# runtime
|
|
# * is not used to avoid directory merge conflicts
|
|
snap/microstack/current/: ./
|
|
|
|
# MySQL
|
|
mysql-server:
|
|
plugin: dump
|
|
source: ./snap-wrappers/mysql
|
|
stage-packages:
|
|
- mysql-server
|
|
- mysql-client
|
|
organize:
|
|
mysql-start-server: bin/mysql-start-server
|
|
mysql-start-client: bin/mysql-start-client
|
|
|
|
# RabbitMQ
|
|
rabbitmq-server:
|
|
source: ./snap-wrappers/rabbitmq
|
|
plugin: dump
|
|
stage-packages:
|
|
- rabbitmq-server
|
|
override-build: |
|
|
rm -f $SNAPCRAFT_PART_INSTALL/usr/bin/erl
|
|
rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/rabbitmq/bin/rabbitmq-script-wrapper
|
|
# NOTE(jamespage): The versioned path below is brittle.
|
|
rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/sbin/rabbitmq-defaults
|
|
snapcraftctl build
|
|
organize:
|
|
rabbitmq-script-wrapper: usr/lib/rabbitmq/bin/rabbitmq-script-wrapper
|
|
rabbitmq-defaults: usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/sbin/rabbitmq-defaults
|
|
erl: usr/bin/erl
|
|
|
|
# Memcached Token Caching
|
|
memcached:
|
|
plugin: autotools
|
|
source: https://memcached.org/files/memcached-1.5.10.tar.gz
|
|
build-packages:
|
|
- libevent-dev
|
|
- gcc
|
|
- make
|
|
stage-packages:
|
|
- libevent-2.0-5
|
|
override-build: |
|
|
./configure --prefix=$SNAPCRAFT_PART_INSTALL
|
|
make
|
|
make install
|
|
|
|
# Cinder LVM backend
|
|
lvm2:
|
|
source: http://www.sourceware.org/pub/lvm2/releases/LVM2.2.02.172.tgz
|
|
plugin: autotools
|
|
configflags:
|
|
- --with-confdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/etc/
|
|
- --with-default-system-dir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/etc/
|
|
build-attributes: [no-patchelf]
|
|
|
|
# Misc utils for hypervisor networking
|
|
bridge-utils:
|
|
source: https://www.kernel.org/pub/linux/utils/net/bridge-utils/bridge-utils-1.6.tar.gz
|
|
plugin: autotools
|
|
iproute2:
|
|
source: https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.9.0.tar.gz
|
|
plugin: autotools
|
|
build-packages:
|
|
- bison
|
|
- flex
|
|
- libdb5.3-dev
|
|
iptables:
|
|
source: http://iptables.netfilter.org/projects/iptables/files/iptables-1.6.0.tar.bz2
|
|
plugin: autotools
|
|
build-packages:
|
|
- libnftnl-dev
|
|
configflags:
|
|
- --disable-nftables
|
|
- --prefix=/snap/$SNAPCRAFT_PROJECT_NAME/current
|
|
install: |
|
|
cp --remove-destination $SNAPCRAFT_PART_INSTALL/snap/$SNAPCRAFT_PROJECT_NAME/current/sbin/xtables-multi \
|
|
$SNAPCRAFT_PART_INSTALL/snap/$SNAPCRAFT_PROJECT_NAME/current/bin/iptables-xml
|
|
organize:
|
|
# Hack to shift installed iptables back to root of snap
|
|
# required to ensure that pathing to files etc works at
|
|
# runtime
|
|
# * is not used to avoid directory merge conflicts
|
|
snap/microstack/current/: ./
|
|
|
|
ipset:
|
|
source: http://ipset.netfilter.org/ipset-6.30.tar.bz2
|
|
plugin: autotools
|
|
build-packages:
|
|
- libltdl-dev
|
|
- libmnl-dev
|
|
configflags:
|
|
- "--with-kmod=no"
|
|
|
|
launch:
|
|
plugin: dump
|
|
source: src/launch
|
|
organize:
|
|
launch.sh: bin/launch.sh
|
|
|
|
# Openstack Shared Parts
|
|
overlay:
|
|
plugin: dump
|
|
source: snap-overlay
|
|
|
|
configure-the-things:
|
|
plugin: dump
|
|
source: src/experiments
|