Implement Standard-CI with containers

Description

oVirt's Standard-CI is currently implemented using mock, and this has worked well for us so far.
Changing the implementation to use containers will provide several benefits:

  • Faster start-up times - Most container provides have some form of image layering and caching that will be faster as bringing up a basic OS image then installing it with yum like mock does.

  • Broader OS support - mock can only run on the Red Hat family of operating systems, and can only emulate those operating systems. Most container providers can both run on and emulate a broader range of operating systems.

  • Better isolation and cleanup - Mock only isolates the file system, containers can isolate the file system as well as the networking layer and the process space.

Depending on the container provider, we may gain additional benefits:

  • Some container providers like Kubernetes, can manage distributed compute resources across many nodes. This means can can stop managing Jenkins slaves and instead just have the Jenkins master start up containers on the provider.

  • Some providers like OpenShift have built-in CI processes for creating and testing container images.

Note: At some point, David started an effort going this way: https://gerrit.ovirt.org/#/c/54376/

Status

Assignee

Unassigned

Reporter

Barak Korren

Blocked By

None

Priority

Medium
Configure