This is a goiardi 0.11.3 release. All programmerdwarfship is of, um, some sort of quality. It is encircled with bands of cruft. It is made from raw golang source files. This object menaces with spikes of yak hair. On the item is an image of a goiardi 0.11.3 release. On the item is an image of a programmer in sphalerite. The programmer is making a plaintive gesture.
The goiardi 0.11.3 - Menaces with Spikes has come! A housekeeping and bugfix release, mostly. It has command line options. Beware its documentation!
There are bugfixes in this release, one of which is fairly important. If an object being indexed for search had arrays with duplicate items, the in-memory trie index would crash goiardi when trying to index it. (This not only didn’t come up hardly ever, but it was really hard to track down the actual source of the crash.)
There’s new command line flags, so you can configure MySQL and PostgreSQL connections without having to use the config file. Another new development which might be interesting is that now you can configure many of those command line flags with environment variables. This makes running goiardi in Docker easier, since you can just pass in values that way rather than having to mount your own config file to the image, built a new image of your own from scratch, or such and such.
The optional index value length trimming that’s new with this release should be able to save some memory, if your roles, nodes, environments, or data bags have lots of very long values in them. Right now it’s disabled by default, but in the next major (or minor - basically whatever ends up not being 0.11.x; the question is if that will be 0.12.0 or 1.0.0) release the trimming will be on by default. Testing has shown that trimming those indexed values to 100 characters works well, but 50 characters is too short. At 50 characters, some chef-pedant search tests were breaking.
Aside from all that, most of the rest is documentation housekeeping and small changes to packaging. As always, binaries for a variety of platforms are available on the release page, and packages for Debian wheezy, jessie, and stretch, Ubuntu trusty, xenial, and yakkety, and CentOS 6 & 7 are available for various combinations of amd64, arm, and s390x architectures at the goiardi packagecloud.io repo.
From the CHANGELOG:
* Add an option to trim values in search indexes. Currently not enabled by default, but will be in the next minor goiardi release (so, either 0.12.0 or 1.0.0, depending on which ends up being next). Existing indexes ought to be reindexed upon upgrading, but they should still work if this is skipped. * Fix a bug where duplicated items in slices in objects being indexed with the in-memory trie based index would cause goiardi to crash. For good measure, even though it isn't necessary to prevent a crash remove those same duplicate items from objects being indexed with the postgres index. * Mark --use-unsafe-mem-store as deprecated. In the unlikely event someone's using that option, a warning will print in the log. This option may be removed at any time. * Allow setting configuration options via environment variables. (See the documentation for the details.) * Finally allow configuring MySQL or PostgreSQL connection options with command line flags (or, now, environment variables). * Fixed format issues and wording in a few places in the documentation, along with updating the docs for the current version. * Add a hidden flag to generate a simple man page. * Add that simple man page, along with the html docs, to the packagecloud.io packages. * Add a Dockerfile to allow running the local goiardi source in docker. * Add Debian "stretch" and Ubuntu "yakkety yak" to the distro versions we have in the package repository.