From 8b5428d7f28ec92abc3316a6685c2596ab4a6d5e Mon Sep 17 00:00:00 2001 From: Pete Vander Giessen Date: Fri, 28 Jun 2019 13:21:49 +0000 Subject: [PATCH] Added snap configuration. Moved openstack env variables out of snapcraft.yaml, and into a "microtack.rc". Made openstack-wrapper, which auto sources microstack.rc. Key off of revised snap.openstack, which supports snapctl config values in templates. Moved a lot of the overlay into snap-overlay/templates, and added config values to them. Also writes templates just once, when you run snap-openstack setup. --- snap-overlay/bin/launch.sh | 4 +- snap-overlay/bin/setup-br-ex | 6 ++- .../etc/glance/glance.conf.d/database.conf | 2 - .../keystone/keystone.conf.d/database.conf | 2 - .../etc/neutron/neutron.conf.d/database.conf | 2 - .../etc/nova/nova.conf.d/database.conf | 5 --- snap-overlay/etc/nova/nova.conf.d/glance.conf | 2 - .../etc/nova/nova.conf.d/rabbitmq.conf | 2 - snap-overlay/snap-openstack.yaml | 19 ++++++++++ .../glance.conf.d.keystone.conf.j2} | 6 +-- .../templates/glance.database.conf.j2 | 2 + .../templates/keystone.database.conf.j2 | 2 + snap-overlay/templates/microstack.rc.j2 | 9 +++++ .../templates/neutron.database.conf.j2 | 2 + .../neutron.keystone.conf.j2} | 6 +-- .../neutron.nova.conf.j2} | 2 +- .../templates/nova.conf.d.database.conf.j2 | 5 +++ .../templates/nova.conf.d.glance.conf.j2 | 2 + .../nova.conf.d.keystone.conf.j2} | 6 +-- .../nova.conf.d.neutron.conf.j2} | 6 +-- .../nova.conf.d.nova-placement.conf.j2} | 2 +- .../templates/nova.conf.d.rabbitmq.conf.j2 | 2 + snap-wrappers/openstack/openstack-wrapper | 7 ++++ snap/hooks/configure | 37 +++++++++++++------ snap/hooks/install | 13 +++++-- snapcraft.yaml | 25 ++++++------- 26 files changed, 119 insertions(+), 59 deletions(-) delete mode 100644 snap-overlay/etc/glance/glance.conf.d/database.conf delete mode 100644 snap-overlay/etc/keystone/keystone.conf.d/database.conf delete mode 100644 snap-overlay/etc/neutron/neutron.conf.d/database.conf delete mode 100644 snap-overlay/etc/nova/nova.conf.d/database.conf delete mode 100644 snap-overlay/etc/nova/nova.conf.d/glance.conf delete mode 100644 snap-overlay/etc/nova/nova.conf.d/rabbitmq.conf rename snap-overlay/{etc/glance/glance.conf.d/keystone.conf => templates/glance.conf.d.keystone.conf.j2} (60%) create mode 100644 snap-overlay/templates/glance.database.conf.j2 create mode 100644 snap-overlay/templates/keystone.database.conf.j2 create mode 100644 snap-overlay/templates/microstack.rc.j2 create mode 100644 snap-overlay/templates/neutron.database.conf.j2 rename snap-overlay/{etc/neutron/neutron.conf.d/keystone.conf => templates/neutron.keystone.conf.j2} (61%) rename snap-overlay/{etc/neutron/neutron.conf.d/nova.conf => templates/neutron.nova.conf.j2} (86%) create mode 100644 snap-overlay/templates/nova.conf.d.database.conf.j2 create mode 100644 snap-overlay/templates/nova.conf.d.glance.conf.j2 rename snap-overlay/{etc/nova/nova.conf.d/keystone.conf => templates/nova.conf.d.keystone.conf.j2} (60%) rename snap-overlay/{etc/nova/nova.conf.d/neutron.conf => templates/nova.conf.d.neutron.conf.j2} (67%) rename snap-overlay/{etc/nova/nova.conf.d/nova-placement.conf => templates/nova.conf.d.nova-placement.conf.j2} (82%) create mode 100644 snap-overlay/templates/nova.conf.d.rabbitmq.conf.j2 create mode 100755 snap-wrappers/openstack/openstack-wrapper diff --git a/snap-overlay/bin/launch.sh b/snap-overlay/bin/launch.sh index b84cb19..01cc18a 100755 --- a/snap-overlay/bin/launch.sh +++ b/snap-overlay/bin/launch.sh @@ -2,6 +2,8 @@ set -e +source $SNAP_COMMON/etc/microstack.rc + if [ -z "$1" ]; then echo "Please specify a name for the server." exit 1 @@ -64,4 +66,4 @@ while :; do fi done -echo "You can also visit the openstack dashboard at 'http://10.20.20.1/'" +echo "You can also visit the openstack dashboard at 'http://$extgateway/'" diff --git a/snap-overlay/bin/setup-br-ex b/snap-overlay/bin/setup-br-ex index dbff88f..6ba964e 100755 --- a/snap-overlay/bin/setup-br-ex +++ b/snap-overlay/bin/setup-br-ex @@ -9,13 +9,15 @@ set -ex +extgateway=$(snapctl get extgateway) + # Create external integration bridge ovs-vsctl --retry --may-exist add-br br-ex # Configure br-ex -ip address add 10.20.20.1/24 dev br-ex || : +ip address add $extgateway/24 dev br-ex || : ip link set br-ex up || : -sudo iptables -t nat -A POSTROUTING -s 10.20.20.1/24 ! -d 10.20.20.1/24 -j MASQUERADE +sudo iptables -t nat -A POSTROUTING -s $extgateway/24 ! -d $extgateway/24 -j MASQUERADE exit 0 diff --git a/snap-overlay/etc/glance/glance.conf.d/database.conf b/snap-overlay/etc/glance/glance.conf.d/database.conf deleted file mode 100644 index 63ca380..0000000 --- a/snap-overlay/etc/glance/glance.conf.d/database.conf +++ /dev/null @@ -1,2 +0,0 @@ -[database] -connection = mysql+pymysql://glance:glance@10.20.20.1/glance diff --git a/snap-overlay/etc/keystone/keystone.conf.d/database.conf b/snap-overlay/etc/keystone/keystone.conf.d/database.conf deleted file mode 100644 index 9d82b70..0000000 --- a/snap-overlay/etc/keystone/keystone.conf.d/database.conf +++ /dev/null @@ -1,2 +0,0 @@ -[database] -connection = mysql+pymysql://keystone:keystone@10.20.20.1/keystone diff --git a/snap-overlay/etc/neutron/neutron.conf.d/database.conf b/snap-overlay/etc/neutron/neutron.conf.d/database.conf deleted file mode 100644 index 516b5ba..0000000 --- a/snap-overlay/etc/neutron/neutron.conf.d/database.conf +++ /dev/null @@ -1,2 +0,0 @@ -[database] -connection = mysql+pymysql://neutron:neutron@10.20.20.1/neutron diff --git a/snap-overlay/etc/nova/nova.conf.d/database.conf b/snap-overlay/etc/nova/nova.conf.d/database.conf deleted file mode 100644 index 873659e..0000000 --- a/snap-overlay/etc/nova/nova.conf.d/database.conf +++ /dev/null @@ -1,5 +0,0 @@ -[database] -connection = mysql+pymysql://nova:nova@10.20.20.1/nova - -[api_database] -connection = mysql+pymysql://nova_api:nova_api@10.20.20.1/nova_api diff --git a/snap-overlay/etc/nova/nova.conf.d/glance.conf b/snap-overlay/etc/nova/nova.conf.d/glance.conf deleted file mode 100644 index 1a32ab6..0000000 --- a/snap-overlay/etc/nova/nova.conf.d/glance.conf +++ /dev/null @@ -1,2 +0,0 @@ -[glance] -api_servers = http://10.20.20.1:9292 diff --git a/snap-overlay/etc/nova/nova.conf.d/rabbitmq.conf b/snap-overlay/etc/nova/nova.conf.d/rabbitmq.conf deleted file mode 100644 index 64ed1f8..0000000 --- a/snap-overlay/etc/nova/nova.conf.d/rabbitmq.conf +++ /dev/null @@ -1,2 +0,0 @@ -[DEFAULT] -transport_url = rabbit://openstack:rabbitmq@10.20.20.1 diff --git a/snap-overlay/snap-openstack.yaml b/snap-overlay/snap-openstack.yaml index 24b91aa..641ba5b 100644 --- a/snap-overlay/snap-openstack.yaml +++ b/snap-overlay/snap-openstack.yaml @@ -38,8 +38,27 @@ setup: horizon-nginx.conf.j2: "{snap_common}/etc/nginx/snap/sites-enabled/horizon.conf" libvirtd.conf.j2: "{snap_common}/libvirt/libvirtd.conf" virtlogd.conf.j2: "{snap_common}/libvirt/virtlogd.conf" + microstack.rc.j2: "{snap_common}/etc/microstack.rc" + glance.conf.d.keystone.conf.j2: "{snap_common}/etc/glance/glance.conf.d/keystone.conf" + nova.conf.d.keystone.conf.j2: "{snap_common}/etc/nova/nova.conf.d/keystone.conf" + nova.conf.d.database.conf.j2: "{snap_common}/etc/nova/nova.conf.d/database.conf" + nova.conf.d.rabbitmq.conf.j2: "{snap_common}/etc/nova/nova.conf.d/rabbitmq.conf" + nova.conf.d.nova-placement.conf.j2: "{snap_common}/etc/nova/nova.conf.d/nova-placement.conf" + nova.conf.d.glance.conf.j2: "{snap_common}/etc/nova/nova.conf.d/glance.conf" + nova.conf.d.neutron.conf.j2: "{snap_common}/etc/nova/nova.conf.d/neutron.conf" + keystone.database.conf.j2: "{snap_common}/etc/keystone/keystone.conf.d/database.conf" + glance.database.conf.j2: "{snap_common}/etc/glance/glance.conf.d/database.conf" + neutron.keystone.conf.j2: "{snap_common}/etc/neutron/neutron.conf.d/keystone.conf" + neutron.nova.conf.j2: "{snap_common}/etc/neutron/neutron.conf.d/nova.conf" + neutron.database.conf.j2: "{snap_common}/etc/neutron/neutron.conf.d/database.conf" + chmod: "{snap_common}/instances": 0755 + "{snap_common}/etc/microstack.rc": 0644 + snap-config-keys: + - ospassword + - extgateway + - dns entry_points: keystone-manage: binary: "{snap}/bin/keystone-manage" diff --git a/snap-overlay/etc/glance/glance.conf.d/keystone.conf b/snap-overlay/templates/glance.conf.d.keystone.conf.j2 similarity index 60% rename from snap-overlay/etc/glance/glance.conf.d/keystone.conf rename to snap-overlay/templates/glance.conf.d.keystone.conf.j2 index 01016b1..34ef497 100644 --- a/snap-overlay/etc/glance/glance.conf.d/keystone.conf +++ b/snap-overlay/templates/glance.conf.d.keystone.conf.j2 @@ -1,7 +1,7 @@ [keystone_authtoken] -auth_uri = http://10.20.20.1:5000 -auth_url = http://10.20.20.1:5000 -memcached_servers = 10.20.20.1:11211 +auth_uri = http://{{ extgateway }}:5000 +auth_url = http://{{ extgateway }}:5000 +memcached_servers = {{ extgateway }}:11211 auth_type = password project_domain_name = default user_domain_name = default diff --git a/snap-overlay/templates/glance.database.conf.j2 b/snap-overlay/templates/glance.database.conf.j2 new file mode 100644 index 0000000..016fa6b --- /dev/null +++ b/snap-overlay/templates/glance.database.conf.j2 @@ -0,0 +1,2 @@ +[database] +connection = mysql+pymysql://glance:glance@{{ extgateway }}/glance diff --git a/snap-overlay/templates/keystone.database.conf.j2 b/snap-overlay/templates/keystone.database.conf.j2 new file mode 100644 index 0000000..f9a2da4 --- /dev/null +++ b/snap-overlay/templates/keystone.database.conf.j2 @@ -0,0 +1,2 @@ +[database] +connection = mysql+pymysql://keystone:keystone@{{ extgateway }}/keystone diff --git a/snap-overlay/templates/microstack.rc.j2 b/snap-overlay/templates/microstack.rc.j2 new file mode 100644 index 0000000..e7eb75b --- /dev/null +++ b/snap-overlay/templates/microstack.rc.j2 @@ -0,0 +1,9 @@ +export OS_PROJECT_DOMAIN_NAME=default +export OS_USER_DOMAIN_NAME=default +export OS_PROJECT_NAME=admin +export OS_USERNAME=admin +export OS_PASSWORD={{ ospassword }} +export OS_AUTH_URL=http://{{ extgateway }}:5000 +export OS_IDENTITY_API_VERSION=3 +export OS_IMAGE_API_VERSION=2 + diff --git a/snap-overlay/templates/neutron.database.conf.j2 b/snap-overlay/templates/neutron.database.conf.j2 new file mode 100644 index 0000000..710ab68 --- /dev/null +++ b/snap-overlay/templates/neutron.database.conf.j2 @@ -0,0 +1,2 @@ +[database] +connection = mysql+pymysql://neutron:neutron@{{ extgateway }}/neutron diff --git a/snap-overlay/etc/neutron/neutron.conf.d/keystone.conf b/snap-overlay/templates/neutron.keystone.conf.j2 similarity index 61% rename from snap-overlay/etc/neutron/neutron.conf.d/keystone.conf rename to snap-overlay/templates/neutron.keystone.conf.j2 index dbec55c..2898c4d 100644 --- a/snap-overlay/etc/neutron/neutron.conf.d/keystone.conf +++ b/snap-overlay/templates/neutron.keystone.conf.j2 @@ -2,9 +2,9 @@ auth_strategy = keystone [keystone_authtoken] -auth_uri = http://10.20.20.1:5000 -auth_url = http://10.20.20.1:5000 -memcached_servers = 10.20.20.1:11211 +auth_uri = http://{{ extgateway }}:5000 +auth_url = http://{{ extgateway }}:5000 +memcached_servers = {{ extgateway }}:11211 auth_type = password project_domain_name = default user_domain_name = default diff --git a/snap-overlay/etc/neutron/neutron.conf.d/nova.conf b/snap-overlay/templates/neutron.nova.conf.j2 similarity index 86% rename from snap-overlay/etc/neutron/neutron.conf.d/nova.conf rename to snap-overlay/templates/neutron.nova.conf.j2 index 9b07978..b0c25b6 100644 --- a/snap-overlay/etc/neutron/neutron.conf.d/nova.conf +++ b/snap-overlay/templates/neutron.nova.conf.j2 @@ -3,7 +3,7 @@ notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True [nova] -auth_url = http://10.20.20.1:5000 +auth_url = http://{{ extgateway }}:5000 auth_type = password project_domain_name = default user_domain_name = default diff --git a/snap-overlay/templates/nova.conf.d.database.conf.j2 b/snap-overlay/templates/nova.conf.d.database.conf.j2 new file mode 100644 index 0000000..c11a22c --- /dev/null +++ b/snap-overlay/templates/nova.conf.d.database.conf.j2 @@ -0,0 +1,5 @@ +[database] +connection = mysql+pymysql://nova:nova@{{ extgateway }}/nova + +[api_database] +connection = mysql+pymysql://nova_api:nova_api@{{ extgateway }}/nova_api diff --git a/snap-overlay/templates/nova.conf.d.glance.conf.j2 b/snap-overlay/templates/nova.conf.d.glance.conf.j2 new file mode 100644 index 0000000..5ef4e17 --- /dev/null +++ b/snap-overlay/templates/nova.conf.d.glance.conf.j2 @@ -0,0 +1,2 @@ +[glance] +api_servers = http://{{ extgateway }}:9292 diff --git a/snap-overlay/etc/nova/nova.conf.d/keystone.conf b/snap-overlay/templates/nova.conf.d.keystone.conf.j2 similarity index 60% rename from snap-overlay/etc/nova/nova.conf.d/keystone.conf rename to snap-overlay/templates/nova.conf.d.keystone.conf.j2 index db915a3..d0d64c2 100644 --- a/snap-overlay/etc/nova/nova.conf.d/keystone.conf +++ b/snap-overlay/templates/nova.conf.d.keystone.conf.j2 @@ -1,7 +1,7 @@ [keystone_authtoken] -auth_uri = http://10.20.20.1:5000 -auth_url = http://10.20.20.1:5000 -memcached_servers = 10.20.20.1:11211 +auth_uri = http://{{ extgateway }}:5000 +auth_url = http://{{ extgateway }}:5000 +memcached_servers = {{ extgateway }}:11211 auth_type = password project_domain_name = default user_domain_name = default diff --git a/snap-overlay/etc/nova/nova.conf.d/neutron.conf b/snap-overlay/templates/nova.conf.d.neutron.conf.j2 similarity index 67% rename from snap-overlay/etc/nova/nova.conf.d/neutron.conf rename to snap-overlay/templates/nova.conf.d.neutron.conf.j2 index 646eeee..f6c0505 100644 --- a/snap-overlay/etc/nova/nova.conf.d/neutron.conf +++ b/snap-overlay/templates/nova.conf.d.neutron.conf.j2 @@ -1,7 +1,7 @@ [neutron] -url = http://10.20.20.1:9696 -auth_url = http://10.20.20.1:5000 -memcached_servers = 10.20.20.1:11211 +url = http://{{ extgateway }}:9696 +auth_url = http://{{ extgateway }}:5000 +memcached_servers = {{ extgateway }}:11211 auth_type = password project_domain_name = default user_domain_name = default diff --git a/snap-overlay/etc/nova/nova.conf.d/nova-placement.conf b/snap-overlay/templates/nova.conf.d.nova-placement.conf.j2 similarity index 82% rename from snap-overlay/etc/nova/nova.conf.d/nova-placement.conf rename to snap-overlay/templates/nova.conf.d.nova-placement.conf.j2 index aca43e3..8089679 100644 --- a/snap-overlay/etc/nova/nova.conf.d/nova-placement.conf +++ b/snap-overlay/templates/nova.conf.d.nova-placement.conf.j2 @@ -4,6 +4,6 @@ project_domain_name = default project_name = service auth_type = password user_domain_name = default -auth_url = http://10.20.20.1:5000 +auth_url = http://{{ extgateway }}:5000 username = placement password = placement diff --git a/snap-overlay/templates/nova.conf.d.rabbitmq.conf.j2 b/snap-overlay/templates/nova.conf.d.rabbitmq.conf.j2 new file mode 100644 index 0000000..b1988c0 --- /dev/null +++ b/snap-overlay/templates/nova.conf.d.rabbitmq.conf.j2 @@ -0,0 +1,2 @@ +[DEFAULT] +transport_url = rabbit://openstack:rabbitmq@{{ extgateway }} diff --git a/snap-wrappers/openstack/openstack-wrapper b/snap-wrappers/openstack/openstack-wrapper new file mode 100755 index 0000000..8f4275b --- /dev/null +++ b/snap-wrappers/openstack/openstack-wrapper @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +source $SNAP_COMMON/etc/microstack.rc + +exec $@ diff --git a/snap/hooks/configure b/snap/hooks/configure index aee0232..eb6e02e 100755 --- a/snap/hooks/configure +++ b/snap/hooks/configure @@ -1,4 +1,19 @@ -#!/bin/bash -e +#!/bin/bash +set -ex + +ospassword=$(snapctl get ospassword) +extgateway=$(snapctl get extgateway) +dns=$(snapctl get dns) + +if [ -z "$ospassword" -o -z "$extgateway" -o -z "$dns" ]; then + echo "Missing required config value." + snapctl get microstack + exit 1 +fi + +snap-openstack setup # Write out templates + +source $SNAP_COMMON/etc/microstack.rc # Open up networking so that instances can route to the Internet (see # bin/setup-br-ex for more networking setup, executed on microstack @@ -9,25 +24,25 @@ sudo sysctl net.ipv4.ip_forward=1 echo "Creating OpenStack Databases" # Wait for MySQL to startup -while ! nc -z 10.20.20.1 3306; do sleep 0.1; done; +while ! nc -z $extgateway 3306; do sleep 0.1; done; sleep 5 # Wait for rabbitmq to start -while ! nc -z 10.20.20.1 5672; do sleep 0.1; done; +while ! nc -z $extgateway 5672; do sleep 0.1; done; for db in neutron nova nova_api nova_cell0 cinder glance keystone; do - echo "CREATE DATABASE IF NOT EXISTS ${db}; GRANT ALL PRIVILEGES ON ${db}.* TO '${db}'@'10.20.20.1' IDENTIFIED BY '${db}';" \ + echo "CREATE DATABASE IF NOT EXISTS ${db}; GRANT ALL PRIVILEGES ON ${db}.* TO '${db}'@'$extgateway' IDENTIFIED BY '${db}';" \ | mysql-start-client -u root done # Grant nova user access to cell0 -echo "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'10.20.20.1' IDENTIFIED BY 'nova';" | mysql-start-client -u root +echo "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'$extgateway' IDENTIFIED BY 'nova';" | mysql-start-client -u root -# Endpoints from localhost -> 10.20.20.1 -# TODO Rebuild database so that these are already set to 10.20.20.1, +# Endpoints from localhost -> $extgateway +# TODO Rebuild database so that these are already set to $extgateway, # after lp:1824176 is addressed, and the process of building a new # mysql.tar.xz is less fraught. -openstack endpoint list | grep localhost | while read line; do openstack endpoint set `echo $line | cut -d" " -f2` --url `echo $line | cut -d" " -f14 | sed 's/localhost/10.20.20.1/'`; done +openstack endpoint list | grep localhost | while read line; do openstack endpoint set `echo $line | cut -d" " -f2` --url `echo $line | cut -d" " -f14 | sed "s/localhost/$extgateway/"`; done # RabbitMQ echo "Configuring RabbitMQ" @@ -45,12 +60,12 @@ HOME=$SNAP_COMMON/lib/rabbitmq rabbitmqctl set_permissions openstack ".*" ".*" " # Glance echo "Waiting for glance to start." -while ! nc -z 10.20.20.1 9292; do sleep 0.1; done; +while ! nc -z $extgateway 9292; do sleep 0.1; done; sleep 5 # Wait for identity service -while ! nc -z 10.20.20.1 5000; do sleep 0.1; done; +while ! nc -z $extgateway 5000; do sleep 0.1; done; # Setup the cirros image, which is used by the launch app openstack image show cirros || { @@ -70,7 +85,7 @@ openstack image show cirros || { systemctl restart snap.microstack.*virt* # Wait for horizon -while ! nc -z 10.20.20.1 80; do sleep 0.1; done; +while ! nc -z $extgateway 80; do sleep 0.1; done; # Restart Placement API # Workaround for issue w/ base:core18, where the Placement API throws diff --git a/snap/hooks/install b/snap/hooks/install index 15587b8..ab42900 100755 --- a/snap/hooks/install +++ b/snap/hooks/install @@ -1,5 +1,10 @@ -#!/bin/sh -set -e +#!/bin/bash +set -ex + +snapctl set \ + ospassword=keystone \ + extgateway=10.20.20.1 \ + dns=1.1.1.1 # MySQL snapshot for speedy install # snapshot is a mysql data dir with @@ -11,8 +16,10 @@ tar -xJf ${SNAP}/data/mysql.tar.xz -C ${SNAP_COMMON}/lib echo "Installing configuration for OpenStack Services" for project in neutron nova keystone glance; do mkdir -p ${SNAP_COMMON}/etc/${project}/${project}.conf.d - cp -r ${SNAP}/etc/${project}/${project}.conf.d/* ${SNAP_COMMON}/etc/${project}/${project}.conf.d + cp -r ${SNAP}/etc/${project}/${project}.conf.d/* ${SNAP_COMMON}/etc/${project}/${project}.conf.d || true # Skip conf files that have been moved into templates done +snap-openstack setup # Sets up templates for the first time. + # Configure Keystone Fernet Keys snap-openstack keystone-manage fernet_setup --keystone-user root --keystone-group root diff --git a/snapcraft.yaml b/snapcraft.yaml index f284676..e70f0ad 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -12,20 +12,11 @@ environment: 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://10.20.20.1:5000 - OS_IDENTITY_API_VERSION: 3 - OS_IMAGE_API_VERSION: 2 apps: # Openstack openstack: - command: openstack + command: openstack-wrapper openstack # plugs: # - network @@ -329,7 +320,7 @@ parts: - oslo.cache[dogpile] - pymysql - uwsgi - - git+https://github.com/openstack/snap.openstack#egg=snap.openstack + - git+https://github.com/petevg/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 @@ -377,6 +368,14 @@ parts: stage: [$etc] prime: [$etc] + openstack-wrapper: + source: ./snap-wrappers/openstack + plugin: dump + after: + - openstack-projects + organize: + openstack-wrapper: bin/openstack-wrapper + nova-config: after: [openstack-projects] plugin: dump @@ -706,8 +705,8 @@ parts: rm -R libvirt-4.0.* || true # Download sources and patch wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_4.0.0.orig.tar.xz - wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_4.0.0-1ubuntu8.10.debian.tar.xz - wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_4.0.0-1ubuntu8.10.dsc + wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_4.0.0-1ubuntu8.12.debian.tar.xz + wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_4.0.0-1ubuntu8.12.dsc dpkg-source -x libvirt*.dsc snapcraftctl build organize: