I wrote a plugin for Hashicorp’s Packer that automatically updates a Vagrant catalog when Packer finishes.
It’s no longer under active development.
This was the first concrete project I built in Go, and I found I loved it.
At the time, I was working in a mostly Windows shop. I made heavy use of disposable virtual machines for testing.
Windows made this difficult, because it has a licensing requirement. You could make Vagrant images with a trial version of Windows, but they expire after 90 days.
What I really wanted was to automatically build new Vagrant images. I did this with Packer. But Packer could only manage versions of images on a now-defunct Hashicorp service called “Atlas”; it could not manage versions locally. It could only copy the new image over the old one. Vagrant, though, supported a JSON catalog that understood versions.
So I wrote a Packer plugin to create and update a Vagrant catalog.
I called it Caryatid because
Well, I thought it was clever.