There’s a new version of goiardi, a chef server implemented in Go, out that
adds support for MySQL as a backend. It can either run in-memory, like
chef-zero (optionally freezing its data and index to save files), or use
Behavior-wise, it’s quite close to official chef server now. Assuming
authentication is enabled, it passes all the important chef-pedant tests.
There are a few areas where chef server and goiardi differ because of
differences in how authentication is handled, how the depsolver runs (chef
server chugs along finding all the inconsistencies, while goiardi
immediately throws its hands up at the first problem), and some cookbook
behavior where chef-pedant expects to have an empty array persist. These
differences do not seem to affect how knife and chef-client run, however.
If your so inclined, it works fine with chef-webui as well. It wouldn’t
cluster well at this time, however, because the search and indexing
functionality is inside goiardi - search and indexing would need to be
moved to a separate process, or else the goiardi processes would need to
communicate with each other to share updates.
Plans are afoot to improve it further; a few folks have asked about
postgres support, and I have a list of issues to address to address to make
it better. Right now, though, it works fine, and it’s seeing some use for
testing other software.
Goiardi can be found at https://github.com/ctdk/goiardi, and the README and
godocs explain how to set it up and run it. Installation and running it is
pretty straightforward, but does require installing go (and possibly MySQL)
- there aren’t any binaries or packages available at this time.
Happy agitating, in a stormy fashion,