[kolla][tripleo] Infra style images

Mark Goddard mark at stackhpc.com
Tue Nov 26 09:59:22 UTC 2019

Thanks for kicking off this conversation Marcin.

On Mon, 25 Nov 2019 at 13:44, Marcin Juszkiewicz
<marcin.juszkiewicz at linaro.org> wrote:
> One of things we have on a list of things to do during Ussuri cycle is
> implementation of 'infra' images.
> BP: https://blueprints.launchpad.net/kolla/+spec/infra-images
> # What are infra images?
> Images that are always built from binary packages (or are Java
> monsters). We have about 70 such ones from quick check. All those Ceph,
> Prometheus, MariaDB, cron, chrony, storm, sensu etc ones.

There are some e.g. skydive where we e.g. pull go binaries from github.

Another loose definition is that they are everything other than python
OpenStack projects.

> ## libvirt image
> There is 'nova-libvirt' image. Contains libvirt daemon (with qemu and
> all required packages) so it would get renamed to 'libvirt'.

Not a hard requirement as it depends on base rather than nova-base,
but it makes sense.

> # Building
> The idea is that 'infra' will be a new build type (like we have
> 'binary', 'source' etc). With all source base images marked as
> unbuildable so there will be no 'debian-infra-nova-compute' one.
> On the other hand building of 'binary'/'source' type images would lock
> out all 'infra' ones to not get images with names like
> 'debian-source-ceph-mon'.

We need to think about the image hierarchy. The base images are always
large, and if we don't share them between source, binary and infra, we
could end up increasing the overall storage size rather than reducing
it. Currently there are a few places where the base image depends on

* we set the KOLLA_INSTALL_TYPE environment variable. This could be
moved to openstack-base
* RHEL binary images don't install EPEL. We're trying to get rid of
EPEL, or at least only install it where necessary
* there are some minor differences in the packages installed on
CentOS. We could easily unify this

There might be an argument in favour of dropping the type from the
name for infra images, so that we just have debian-base, debian-cron

> # Pros
> - Clean split between OpenStack components (binary/source) and
>   infrastructure needed to get them running (infra).
> - Less images to publish on CI. Infra ones can be built weekly
>   as they do not change much.

It would be interesting to know how much storage we'll actually save
through this effort. And also how much we'd save through squashing.

> - No more questions how did we built ceph-mon from source ;D
> # Cons
> - We need to change kolla-ansible, tripleo and maybe some other
>   projects' code to use new type of images.
> - Migration from previous releases would be more complicated
>   due to image renames.

No longer possible to build all necessary images with one kolla-build command.

More information about the openstack-discuss mailing list