Last week I had the pleasure of presenting at the first London Kubernetes meetup of 2016 and talking about the recent Kubernetes and Puppet integration. The talk I gave focused mainly on the advantages of using a programming language like Puppet to model Kubernetes constructs, as well as a broader discussion about the utility of different user interfaces for different users and contexts. The slides are available here:
I spoke specifically about using Puppet to manage Kubernetes in order to:
- Avoid repetition. Puppet’s variables make it easy to reuse specific bits of data, in a way a static data file doesn’t allow.
- Combine external inputs. Hiera supports bringing in data from a wide range of sources, making for some interesting dynamic use cases.
- Ensure correctness. Puppet’s wide range of testing tools, from unit and acceptance testing to linting and syntax checking, make it easier to catch errors early.
- Create abstractions. The real power of using Puppet with Kubernetes is in providing higher-level business abstractions that can be reused without everyone needing to care about the implementation details.
The audience certainly warmed to the topic and asked good questions throughout. Some of the attendees even said nice things afterwards.
Listening to @garethr explaining how easy it is to control Kubernetes with Puppet at the Kube meetup. Powerful abstractions of primitives.— Peet Denny (@PeetDenny) January 20, 2016
And Daniel Bryant kindly included a mention of the talk in Microservices Weekly, saying:
After seeing Gareth present this at the London Kubernetes meetup earlier in the week, I am now much more convinced of the role of a CM tool with something like Kubernetes.
The main takeaway from the evening was that the power of Kubernetes is in its API. Agreement on that interface allows for a range of tools that control the same underlying system — Puppet, Dies, OpenShift, Helm and more — to emerge. That in turn allows for different use cases and different lifecycles to coexist on the same underlying infrastructure.
Gareth Rushgrove is a senior software engineer at Puppet Labs.
- Want to manage Kubernetes with Puppet? There's a module for that.
- Read Gareth's original blog post, Managing Kubernetes Configuration with Puppet.
- Then check out The Kubernetes Guestbook Example in Puppet.
- And learn about Building your Own Abstractions for Kubernetes in Puppet.