Path to modernization for VM executor

Description

As part of Next Runner Auto-scaling Architecture, we are adding fleeting plugins for different clouds(AWS, GCP, Azure, etc). These fleeting plugins are used by the taskscaler project for provisioning instances and allocating and assigning tasks to them.

We are also moving towards new "modern" pluggable executors as part of Pluggable gRPC executors blueprint (gitlab-com/content-sites/handbook!15068) . All existing executors will now become a "plugin".

We want to focus on shell, docker, instance, docker+autoscaler, kubernetes executors as per this comment. We have already deprecated docker+machine executor. This leaves the question open about how to think about other executors like parrallels, virutalbox

What is the path to modernization for these VM executors(paralles and virtualbox)?

If we plan on supporting these VM executors in the long run, then we can make them a part of the nesting project which is an opinionated daemon that sits in front of virtualization platforms. Nesting is used by the taskscaler project. Nesting already supports parallels and we can make it support any virutalization framework through some sort of "plugin" as well.

Edited by Vishal Tak