Faster Puppet For Mgmt

Abstract When running a graph that was created from a Puppet manifest, mgmt has so far used a workaround for each untranslatable resource. This workaround involved an exec type resource, and shelling out to a variant of puppet resource. Using the new puppet yamlresource receive subcommand, mgmt can now send resources to a persistent Puppet process instead. The native support for this is implemented through the new pseudo-resource pippet in mgmt. [Read More]

Puppet Scripting Host

Abstract In the course of improving the Puppet support in mgmt, I created yet another functionality for the puppet yamlresource module. It allows writing arbitrary resource descriptions to Puppet’s standard input in a YAML format. Puppet synchronizes each received resource in turn, printing a line of diagnostics in JSON format in response. This allows more flexible scenarios than running the compiler for each resource, or even just a simple process like puppet resource, which still implies heavy overhead. [Read More]

Translating All The Things

Through the last months, I’ve written a lot about my work on the translator module for Puppet, which allows us to control mgmt with manifest code. One gimmick we had imagined early was the ability to support arbitrary manifests in mgmt, by invoking puppet resource for vertices that mgmt itself cannot handle. This works now, in principle, and it nicely demonstrates the amount of work that still needs doing. Shaving the yak Adding the generic pseudo-translator code to the module was relatively straight-forward. [Read More]