The kubevirt-actions-runner project provides a robust solution for running GitHub Actions
workflows in isolated, ephemeral virtual machines using KubeVirt.
By integrating with Actions Runner Controller (ARC),
this project enables you to execute CI/CD jobs in highly customizable VM environments with
enhanced security and flexibility.
This project acts as a bridge between Kubernetes and GitHub Actions, automatically provisioning dedicated VMs for each workflow job and cleaning them up after completion.
While GitHub-hosted runners work well for standard workflows, they have limitations. This project addresses these limitations by offering:
- Custom Environments: Run jobs requiring specific kernel modules, system services, or custom OS configurations.
- Enhanced Isolation: Execute untrusted code or security-sensitive workflows in fully isolated VMs.
- OS Flexibility: Support for Windows VMs and other operating systems beyond standard Linux containers.
- Ephemeral Instances: Fresh, clean VM for every job run ensures reproducibility.
- System-Level Control: Full control over VM resources, storage, and network configuration.
- Ephemeral VM Creation: Automatically provisions and destroys VMs for each job.
- Kubernetes-Native: Seamless integration with Kubernetes clusters and ARC.
- Customizable: Tailor VM specifications, resources, and configurations per workflow.
- Lifecycle Management: Automatic VM cleanup and resource management.
- Cloud-Native: Built with Go and follows cloud-native best practices.
- Kubernetes cluster (v1.24+)
- KubeVirt installed and configured
- Actions Runner Controller (ARC) deployed
- GitHub Personal Access Token (PAT) with appropriate permissions
Full documentation is available at the official site.
For a detailed walkthrough of the project, check out the following resources:
- KCD Guadalajara 2025 Presentation: Presentation materials
- Video Recording: Watch the full presentation
We welcome contributions from the community, including:
- Bug reports and fixes
- New features
- Documentation improvements
- Ideas and suggestions
Please see CONTRIBUTING.md for guidelines on how to get involved.
This project is licensed under the Apache License 2.0. See the license for details.
