facterdb icon indicating copy to clipboard operation
facterdb copied to clipboard

Replace Vagrantfile with GitHub Action and virtual machines

Open bastelfreak opened this issue 5 months ago • 4 comments

Right now this repository has a Vagrantfile. This lists a huge amount of virtual machines. All VMs execute a script to collect factsets for different facter versions. We can heavily improve the setup:

  • Update the script to rely openvox-agent and openfact
  • create a github workflow that will be triggered manually
  • Generate a CI matrix based on a list of operating systems
  • in each VM, generate the factsets
  • publish the factsets as github artifact in each job
  • final job collects the artifacts and publishes them as a PR

Some additional documentation:

  • https://github.com/OpenVoxProject/openvox-agent/blob/main/.github/workflows/acceptance.yml ->
  • https://github.com/OpenVoxProject/shared-actions/blob/main/.github/workflows/beaker_acceptance.yml ->
  • https://github.com/jpartlow/kvm_automation_tooling

bastelfreak avatar Aug 10 '25 15:08 bastelfreak

Are all the operating systems we generate factsets for available in Github Actions?

yakatz avatar Aug 10 '25 17:08 yakatz

Github offers Ubuntu, Windows and MacOS. But that doesn't matter here. The linked openvox-agent workflow uses the Ubuntu runners to start different virtual machines, within the runner, via nested virtualization. This isn't the most efficient setup, but we don't need a lot of performance. And the virtual machine can use whatever cloudimages are available.

bastelfreak avatar Aug 10 '25 17:08 bastelfreak

I suppose we need VMs for proper kernel facts that containers wouldn't get right

ekohl avatar Aug 10 '25 18:08 ekohl

Yes. That's why I had the idea with the nested virtual machines.

bastelfreak avatar Aug 10 '25 18:08 bastelfreak