Skip to content

GitLab CI runner use case/RFE(s) #667

@averi

Description

@averi

Hello,

I had a chat with @slp about a potential use case, specifically plugging in libkrun as part of the docker/podman executor workflow for GitLab CI. In GNOME we rely on the docker/podman executor for GitLab to execute hundreds of jobs per day, moving to a different solution (like cloud-hypervisor) would require re-architecting into using a different executor (Instance), while swapping the container runtime in podman is a much simpler task. There's a few requirements that we need though for libkrun to be easier to consume:

  1. Being able to use passt for all the containers that are spawned by the executor without touching the gitlab-runner executor's code at all
  2. Being able to override the kernel image libkrun uses with a configuration param (maybe part of containers.conf?)
  3. Being able to pass a krun_vm.json configuration file
  4. The krun_vm.json file should include a way to specify a block device the VM should use

@slp, with this specific set of requirements, how do you foresee us being able to handle the preparation of the VM for each build, i.e creating a new block device, running the VM, connecting to the VM using vsock or SSH, running the job, deleting the block device, all of this when using the docker/podman executor which doesn't give you that much freedom when it comes to job preparation as it's pretty opinionated. Am I missing something or potentially the only way to handle this would be through the GitLab CI custom executor?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions