Skip to main content
Welcome. This site supports keyboard navigation and screen readers. Press ? at any time for keyboard shortcuts. Press [ to focus the sidebar, ] to focus the content. High-contrast themes are available via the toolbar.
serard@dev00:~/cv

Infrastructure

The .NET projects that build, provision, and orchestrate the VMs and images the rest of the stack runs on.

Vos (FrenchExDev.Net.Vos)

VM orchestration framework for managing virtual machine instances across backends. Supports up, halt, destroy, provision, snapshot operations with configuration merging, group execution, and a contributor-based extensibility model.

var machine = vos.Machine("dev-docker-host")
    .WithType<AlpineDockerHost>()
    .WithContributors(alpine, docker, sharedFolders);

await machine.UpAsync(ct);
await machine.ProvisionAsync(ct);

Machines are composed from typed contributors that layer configuration: Vos.Alpine provides VirtualBox defaults (SATA SSD, nested virtualization, NIC promiscuous mode, Vagrant plugins), and Vos.Alpine.DockerHost adds Docker provisioning (installation, docker-compose, openrc services, shared folder setup).

Packer.Alpine (FrenchExDev.Net.Packer.Alpine)

Alpine Linux provisioning helpers for Packer builds. Provides answer file generation for unattended Alpine installs, base system setup scripts, Vagrant SSH key injection, and Alpine-specific provisioning steps.

Packer.Alpine.DockerHost extends this with Docker provisioning: installs Docker daemon, docker-compose, configures openrc services, and sets up the host as a ready-to-use Docker environment — producing golden VM images that Vos can instantiate.

Together with the Packer BinaryWrapper, this forms a type-safe image building pipeline: Packer (typed CLI) → Packer.Alpine (OS config) → Packer.Alpine.DockerHost (Docker layer) → VM image.

⬇ Download