OpenStack nova package split

Pádraig Brady P at draigBrady.com
Tue Jul 24 18:20:28 UTC 2012


Currently Fedora's openstack-nova package generates the following 2 packages,
with the dependencies indented:

openstack-nova
  openstack-utils
  bridge-utils
  dnsmasq-utils
  libguestfs-mount >= 1.7.17
  fuse # The fuse dependency should be added to libguestfs-mount
  libvirt >= 0.8.7
  MySQL-python
  euca2ools
  openssl
  sudo
  Requires(pre):    shadow-utils qemu-kvm

python-nova
  vconfig       # configures and adjusts 802.1q VLAN parameters
  curl
  coreutils
  radvd         # Router Advertisement daemon
  iptables
  iptables-ipv6
  lvm2
  scsi-target-utils
  iscsi-initiator-utils

  libvirt-python

  python-crypto
  python-paramiko

  python-qpid
  python-kombu
  python-amqplib

  python-daemon
  python-eventlet
  python-greenlet
  python-gflags
  python-iso8601
  python-lockfile
  python-netaddr
  python-lxml
  PyXML
  python-anyjson
  python-boto
  python-cheetah
  python-ldap

  python-memcached

  python-sqlalchemy
  python-migrate

  python-paste-deploy
  python-routes
  python-webob

  python-glance
  python-novaclient


Now even though we don't auto enable any services on install,
splitting out some sub packages would reduce dependencies
on particular packages, saving disk space and identifying
and distributing dependencies going forward.
The current plan is to split into the following 10 subpackages:

openstack-nova (a new meta package for compat with old scripts)
  openstack-nova-compute
  openstack-nova-cert
  openstack-nova-scheduler
  openstack-nova-volume
  openstack-nova-api
  openstack-nova-network
  openstack-nova-objectstore
  openstack-nova-console

python-nova
  openssl
  sudo

  MySQL-python

  python-crypto
  python-paramiko

  python-qpid
  python-kombu
  python-amqplib

  python-daemon
  python-eventlet
  python-greenlet
  python-gflags
  python-iso8601
  python-lockfile
  python-netaddr
  python-lxml
  PyXML
  python-anyjson
  python-boto
  python-cheetah
  python-ldap

  python-memcached

  python-sqlalchemy
  python-migrate

  python-paste-deploy
  python-routes
  python-webob

  python-glance
  python-novaclient

openstack-nova-compute
  python-nova
  curl
  iscsi-initiator-utils
  iptables
  iptables-v6
  vconfig
  libguestfs-mount
    fuse
  qemu-kvm
  libvirt
  libvirt-python

openstack-nova-cert
  python-nova

openstack-nova-scheduler
  python-nova

openstack-nova-volume
  python-nova
  lvm2
  scsi-target-utils

openstack-nova-api
  python-nova

openstack-nova-network
  python-nova
  vconfig
  radvd
  bridge-utils
  dnsmasq-utils

openstack-nova-objectstore
  python-nova

openstack-nova-console
  python-nova


I plan to implement this for the existing Essex packages
in Fedora 17 and EPEL6 over the next while.

Note to get an idea of the distribution of the disk space at least
I used `yum install --disablerepo=*updates pkg1 pkg2` in an F17 VM
booted from a live iso. That gave an installed size of existing packages as:

  python-nova = 134M
  openstack-nova = 117M

Splitting to 10 sub packages would give:

  python-nova = 56M
  openstack-nova-compute = 166M
  openstack-nova-volume = 38M
  rest are minimal in size (but dep on python-nova)

cheers,
Pádraig.


More information about the cloud mailing list