Investigation: Use Kata containers with hypervisors (e.g. qemu, firecracker) to provide container build and run capability inside workspace
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=452453)
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=452453)
</details>
<!--IssueSummary end-->
MR: Pending
<!--
The first line of the MR must be one of the following:
1. `MR: Pending`
2. `MR: <MR link with trailing +>`,
and the first description line of the MR should be `Issue: <Issue link with trailing +>`
3. `MR: No MR`
For more context, see:
https://about.gitlab.com/handbook/engineering/development/dev/create/ide/index.html#1-to-1-relationship-of-issues-to-mrs
-->
<!--
The following sections should be filled out as part of the refinement process before the issue is prioritized.
For more context, see:
https://about.gitlab.com/handbook/engineering/development/dev/create/ide/#2-pre-iteration-planning-meeting
-->
## Description
[Kata containers](https://katacontainers.io/) is an open source container runtime, building lightweight virtual machines that seamlessly plug into the containers ecosystem. Currently supported hypervisors with Kata Containers include:
- qemu
- cloud-hypervisor
- firecracker
- ACRN
Explore how we can use Kata containers(with any support hypervisors to be able to run `sudo` inside the workspace and how howe we can then use it for building and running containers inside the workspace.
## Acceptance Criteria
- [ ] User can run `sudo` commands inside the workspace - e.g. `apt update`/`sudo apt update`.
- [ ] User can build containers from Dockerfile inside the workspace.
- [ ] User can run a container inside the workspace.
- [ ] The solution should not result in privilege escalation.
## Technical Requirements
TODO: Fill out or delete
[If applicable, please list out any technical requirements for this feature/enhancement.]
## Design Requirements
TODO: Fill out or delete
[If applicable, please provide a link to the design specifications for this feature/enhancement.]
## Impact Assessment
TODO: Fill out or delete
[Please describe the impact this feature/enhancement will have on the user experience and/or the product as a whole.]
## User Story
TODO: Fill out or delete
[Provide a user story to illustrate the use case for this feature/enhancement. Include examples to help communicate the intended functionality.]
<!-- Replace with other type, e.g. bug or maintenance, if appropriate -->
<!-- Replace with other subtype if appropriate -->
<!-- By default, all issues start in the unprioritized status. See https://about.gitlab.com/handbook/engineering/development/dev/create/ide/#-remote-development-planning-process -->
<!-- For simplicity and to avoid triage bot warnings about missing workflow labels, we will default to issues starting at the refinement phase -->
issue