Build Fedora Atomic images using DIB

Registered by Yolanda Robla on 2015-11-23

Currently to test and deploy Magnum, we rely on downloading a Fedora Atomic image pre-built with docker, kubernetes, flannel, etcd. The fact of relying on the download of an external image on tests is adding an extra overhead, and is a clear single point of failure.

From discussion in #openstack-infra and #openstack-containers channel, the alternative is to build the Fedora Atomic image using DIB regularl, and upload the generated artifact to our mirrors. By this way, the generated image should be smaller and will be contained inside OpenStack network, reducing the point of failure.
The build process for the Fedora Atomic image will use diskimagebuilder. Several steps are needed:
- using a Fedora minimal image, add elements to diskimage-builder to construct the final Fedora Atomic one. Documentation on how to generate Atomic images is here:
- add extra elements to diskimage-builder for installing Flannel, etcd, docker, Kubernetes as systemd services. The image needs to accommodate the current scripts for kubernetes and swarm.

In terms of diskimage-builder needs:
- add a new element on disk image builder to allow creation of logical volumes [OK]
- investigate how Atomic filesystem is generated, and add the filesystem to that extra volume created [In Process]

The build process will be documented properly so that anyone can create a new image with new versions.

This blueprint is largely inspired on: , and can share some of the diskimage-builder elements

How Fedora Atomic filesystem is composed
It relies on 2 logical volumes being added to the fedora image:
- volume group atomicos
- two logical volumes:
  * /dev/atomicos/root -> 2.93G
  * /dev/atomicos/docker-pool -> 2G

Blueprint information

Adrian Otto
Yolanda Robla
Yolanda Robla
Series goal:
Accepted for newton
Milestone target:
Started by
hongbin on 2016-05-01
Completed by
Adrian Otto on 2016-10-28

Related branches



Gerrit topic:,topic:bp/fedora-atomic-image-build,n,z

Addressed by:
    Add script to install image build dependencies


Work Items

This blueprint contains Public information 
Everyone can see this information.