This is the blog formerly found at ffrank.github.io. Logo credit: nature by Flatart from Noun Project (CC BY 3.0)

Counting Resource Translation Misses

This is another post in the wake of CfgMgmtCamp 2018, where the mgmt hack room saw lively discussion that inspired some new ideas as well as reminding me of some ideas I had last year, but didn’t manage to implement or describe yet. This post is about one of those. Recap Even though we now have a slick Puppet module that allows early adopters and testers to run mgmt from Puppet manifest code, our ability to run existing, complex manifests is somewhat limited. [Read More]

Thinking About Migration From Puppet To Mgmt

Abstract We have already implemented a way to replace the Puppet Agent with the mgmt engine. It can run a graph on a machine that is derived from the machine’s Puppet catalog. The user is limited to mgmt features that can be expressed in Puppet’s DSL in this scenario. In order to unlock mgmt’s full potential, the user will have to rewrite all their Puppet code in mgmt’s language. This presents a significant challenge for maintainers of larger Puppet code bases that are actively used and evolving. [Read More]

Guest Post By John Arundel

When a prominent fellow tech author like John Arundel offers you to review your title, and even do it in the form of a guest post on your blog, you will probably find yourself facing the proverbial no-brainer decision. Or perhaps that’s just me. (If it is, you all should probably stop pondering so much about everyting, though.) This review is so beautifully written, it warms my heart and fills me with pride (seasoned with a hint of imposter syndrome). [Read More]
puppet  book  plugs 

The Most Important Resource

Note: This article was written in early October 2016, then sat in my local git clone for almost two months, waiting for final review. This happened because of an intense conference season and some other distracting circumstance. So, it is with great relief and satisfaction that I can finally throw this at you now :-) Enjoy, and thanks for reading! Current status: Itching to write some Go. Now what? Adding tests to mgmt is a good exercise, and I will be doing a lot more of it in the months to come. [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]

Edging It All In

The mgmt translator for puppet catalogs was truly created from the bottom up. We started with a few resource types, and the relationships between the translated resources. This falls short for many catalogs, of course, because dependencies must often put whole classes in order, or do the same for instances of defined types. Allowing the translator module to accept such macro-dependencies was not much work, but it did require some intense digging. [Read More]

Puppet Powered Mgmt

Recently, I wrote a veritable deep-dive on mgmt’s new Puppet integration code, but didn’t include a good overview of how the new features look in practice. Here we go. The original interface If you recall, mgmt has no configuration language of its own. With its highly dynamic and distributed nature, it’s also not a good fit for the languages that established tools such as puppet and chef use. (Please note that Salt has no language either, and Ansible relies on a weird YAML hybrid). [Read More]

Puppet, Meet Mgmt

Welcome back I just realized that it has been almost 4 months since my last post. If you missed it, you should probably read it before this one. I kicked off quite a bit of work then and much has come to fruition in the meantime. This is my report. Update: This post is quite extensive and covers the guts of the implementation. For a succinct overview of the new functionality, see the follow-up. [Read More]
puppet  mgmt  dsl  ruby  go 

From Catalog To Mgmt

Have you heard of mgmt yet? It’s (currently) a prototype config management engine written by James and brings some exciting new ideas to the table, building on the proven concepts of Puppet. You should probably read up on it right now. James gave the inaugural demo at ConfigMgmtCamp 2016 in Gent, Belgium, and mentioned that he can picture a sort of “transpiler” that will create resource graphs from Puppet manifest code. [Read More]

Using Http Files

Overview In the introductory post about the new support for source => "http://..." parameters in Puppet’s file resource type, I promised a follow-up that would explain the technical details of the implementation. This is not that post. Instead, seeing as Puppet 4.4 will hopefully be released soon and make this feature available to you, I will explain the caveats in greater detail first and add some perspective on how to best circumvent them. [Read More]