From e4d9ad374142f728f8b240b422502cad376bbce8 Mon Sep 17 00:00:00 2001 From: James Page <james.page@ubuntu.com> Date: Tue, 22 Nov 2016 14:35:13 +0000 Subject: [PATCH] Baseline nova snap --- .gitignore | 5 ++ conf/etc/nova/nova.conf | 6 +++ conf/snap-openstack.yaml | 49 +++++++++++++++++++ conf/templates/nova-snap.conf.j2 | 7 +++ snapcraft.yaml | 83 ++++++++++++++++++++++++++++++++ 5 files changed, 150 insertions(+) create mode 100644 .gitignore create mode 100644 conf/etc/nova/nova.conf create mode 100644 conf/snap-openstack.yaml create mode 100644 conf/templates/nova-snap.conf.j2 create mode 100644 snapcraft.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07ee36e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +parts +prime +stage +*.snap +.tox diff --git a/conf/etc/nova/nova.conf b/conf/etc/nova/nova.conf new file mode 100644 index 0000000..ccf8ad9 --- /dev/null +++ b/conf/etc/nova/nova.conf @@ -0,0 +1,6 @@ +# Snap distribution defaults - do not change, override in $SNAP_COMMON/etc/nova.conf.d +[wsgi] +secure_proxy_ssl_header = HTTP_X_FORWARDED_PROTO + +[database] +max_retries = -1 diff --git a/conf/snap-openstack.yaml b/conf/snap-openstack.yaml new file mode 100644 index 0000000..7006123 --- /dev/null +++ b/conf/snap-openstack.yaml @@ -0,0 +1,49 @@ +setup: + dirs: + - "{snap_common}/etc/nova.conf.d" + - "{snap_common}/etc/nova" + - "{snap_common}/log" + - "{snap_common}/lock" + - "{snap_common}/run" + templates: + "nova-snap.conf.j2": "{snap_common}/etc/nova.conf.d/nova-snap.conf" +entry_points: + nova-api-os-compute: + binary: nova-api-os-compute + 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}/log/nova-api-os-compute.log" + nova-conductor: + binary: nova-conductor + 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}/log/nova-conductor.log" + nova-scheduler: + binary: nova-scheduler + 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}/log/nova-scheduler.log" + nova-consoleauth: + binary: nova-consoleauth + 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}/log/nova-consoleauth.log" + 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" diff --git a/conf/templates/nova-snap.conf.j2 b/conf/templates/nova-snap.conf.j2 new file mode 100644 index 0000000..4f538cd --- /dev/null +++ b/conf/templates/nova-snap.conf.j2 @@ -0,0 +1,7 @@ +[DEFAULT] +# Set state path to writable directory +state_path = {{ snap_common }} + +[oslo_concurrency] +# Oslo Concurrency lock path +lock_path = {{ snap_common }}/lock diff --git a/snapcraft.yaml b/snapcraft.yaml new file mode 100644 index 0000000..0fb1ac3 --- /dev/null +++ b/snapcraft.yaml @@ -0,0 +1,83 @@ +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: strict +grade: devel + +apps: + api: + command: snap-openstack nova-api-os-compute + daemon: simple + plugs: + - network + - network-bind + conductor: + command: snap-openstack nova-conductor + daemon: simple + plugs: + - network + - network-bind + scheduler: + command: snap-openstack nova-scheduler + daemon: simple + plugs: + - network + - network-bind + consoleauth: + command: snap-openstack nova-consoleauth + daemon: simple + plugs: + - network + - network-bind + manage: + command: snap-openstack nova-manage + plugs: + - network +parts: + nova: + plugin: python + python-version: python2 + source: http://tarballs.openstack.org/nova/nova-master.tar.gz + python-packages: + - pymysql + - git+https://github.com/openstack-snaps/snap.openstack#egg=snap.openstack + constraints: https://raw.githubusercontent.com/openstack/requirements/master/upper-constraints.txt + build-packages: + - libffi-dev + - libssl-dev + - libxml2-dev + - libxslt1-dev + - libvirt-dev + - pkg-config + - gcc + templates: + after: + - nova + plugin: dump + source: conf + config: + after: + - nova + plugin: dump + source: http://tarballs.openstack.org/nova/nova-master.tar.gz + filesets: + etc: + - etc/nova/*.conf + - etc/nova/*.ini + - etc/nova/*.json + - etc/nova/rootwrap.d + stage: [$etc] + snap: [$etc]