Add a third image type for infra images

Registered by Mark Goddard

We currently have two image types in kolla: binary and source. This makes sense for our OpenStack images which can use either distro packages or source tarballs.

For other images this makes less sense though, and we end up with images which should be identical, but are not due to their base image content. For example, we have both source and binary cron images.

This feature proposes to add a third image type - 'infra'. These images will not be affected by the source/binary type.

Infra examples: cron, rabbitmq, fluentd, mariadb

Some things to think about:

* Base image content for infra images
* Minimising image size
* Optimising for overall network bandwidth in CI publish jobs
* Optimising for individual image size (often conflicts with previous)
* New CI publish job for infra, or use one of binary/source?

Blueprint information

Mark Goddard
Mark Goddard
Needs approval
Marcin Juszkiewicz
Series goal:
Accepted for wallaby
Milestone target:
milestone icon 12.0.0
Started by
Marcin Juszkiewicz

Related branches



Addressed by:
    WIP: Create 'infra' type of images

Gerrit topic:

Addressed by:
    WIP: introduce non-infra-base image

One of patches introduces 'non-infra-base' image which only holds binary/source environment variables. This allows us to have 'base' image the same for binary/source builds and due to that all infra images are also the same nevermind which 'install type' was used during build.

When both types of images are built on one fresh system then first build (let assume 'binary') creates Infra type of images from scratch and also builds Binary images. Then next Source build can be run and Infra images will be recreated from Docker's cache while Source ones will be fully built.

So if we run binary/source builds as one CI job then we get set of binary/infra/source images using shared layers ('base' will be the same for each image). But that's enlarge build time. Also there is more data to push inside one CI job (but smaller amount then running two separate CI jobs). has notes

Addressed by:
    Add 'infra' install type.

Addressed by:
    introduce 'infra_image_prefix' for infra images

Gerrit topic:

Addressed by:
    fluentd: migrate to td-agent 4 where possible

Addressed by:
    ubuntu: move to 20.04 Focal

Addressed by:
    Rename infrastructure images by default

Gerrit topic:

Addressed by:
    create 'add_binary_source_envs' macro and use it

Gerrit topic:


Work Items

Work items:
Build binary/infra/source images for CentOS: DONE
Build binary/infra/source images for Debian: DONE
Build binary/infra/source images for Ubuntu: DONE
Deploy all-in-one locally: DONE
Deploy all-in-one on CI: INPROGRESS

This blueprint contains Public information 
Everyone can see this information.


No subscribers.