[JIRA] (OVIRT-848) Add support for building containers in oVirt CI

Barak Korren (oVirt JIRA) jira at ovirt-jira.atlassian.net
Mon Nov 28 08:15:03 UTC 2016


    [ https://ovirt-jira.atlassian.net/browse/OVIRT-848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=23315#comment-23315 ] 

Barak Korren commented on OVIRT-848:
------------------------------------

Some details and considerations about the interaction between containers (specifically Docker-based) and "Standard CI":

There are two possible ways to use Docker from inside mock:
# Install Docker inside the mock environment, and start up the Docker daemon inside it as well.
# Install Docker on the slave VM (The host under mock), Docker client in the mock env, and bind-mount the docket socket ({{/var/run/docker.sock}}) into it.

The obvious benefit of method #1 is that it does not require any adjustments to the existing CI infrastructure (We just need to teach devs how to implement it). I have doubts, however, that mock will not cause some difficulties with this (For example, are cgroups mounted inside mock?). We will need to test this and verify it works.

Method #1 will also cause issues when we come around to implementing something like OVIRT-873 ([Nested Docker is possible but far from recommneded|https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/]) or do anything that causes us to run Docker on the hosts themselves.

Method #2 will not have the same issues as method #1, but it will require us to distribute and maintain Docker on the slaves which is a step back to the pre-Standard-CI era.

I think we should actually implement _both_ methods like this:
# Try to mount the Docker socket into the mock env.
# If it works use method #2
# If it doesn't, use method #1.

This will require a little change to {{mock_runner.sh}} to allow bind mounts to be optional, but this change may provide other benefits so we may as well go for it.

> Add support for building containers in oVirt CI
> -----------------------------------------------
>
>                 Key: OVIRT-848
>                 URL: https://ovirt-jira.atlassian.net/browse/OVIRT-848
>             Project: oVirt - virtualization made easy
>          Issue Type: Improvement
>            Reporter: eyal edri [Administrator]
>            Assignee: infra
>
> more and more projects in oVirt are starting to build containers and using Docker files in their reops.
> We need to start preparing oVirt CI to know how to handle containers and support containers the same way we support rpms today.
> This will be a parent task with multiple sub-tasks that will follow, the following is a draft list of what we might need to do to add this support:
> # Install Registry server ( maybe use openshift.ovirt.org ) 
> # Add for standard CI 'build-containers.sh' support 
> # Add verification steps for the build before publishing to registry
> # Look at 3rd party OSS projects that might help and integrate with existing solutions



--
This message was sent by Atlassian JIRA
(v1000.571.2#100021)



More information about the Infra mailing list