Matt Butcher's Blog, page 2
April 23, 2018
Building A Custom Brigade Gateway in 5 Minutes
Brigade gateways trigger new events in the Brigade system. While the included GitHub and container registry hooks are useful, the Brigade system is designed to make it easy for you to build your own. In this post, I show the quickest way to create a Brigade gateway using Node.js. How quick? We should be able to have it running in about five minutes.
PrerequisitesYou'll need Brigade installed and configured, and you will also need Draft installed and configured. Make sure Draft is pointed...
March 26, 2018
How Brigade Shares Data Between Containers
Brigade provides a way to script multiple containers to perform a task. With Brigade, you can build things like CI systems, ETL pipelines, and distributed batch processors. One of the critical capabilities of Brigade is its ability to share data between containers. This article describes the two main ways of sharing data.
Brigade's PurposeIn a previous article in this series, I explained why we created Brigade. I described Brigade as an event-based scripting environment for Kubernetes. A...
March 8, 2018
Why Naming is the Hardest Programming Problem
Adam and I were pairing, working through a critical piece of our program's architecture. The cursor sat blinking. We had been staring at it in awkward silence. We were stumped.
"I'm leaning toward 'version'", I said, as much to break the silence as anything else.
Adam considered for a moment, then replied, "Well, that might cause confusion. Someone might expect it to be a semantic version or a sequential integer. What if we go with 'reference'?"
&qu...
January 11, 2018
Introducing Helm Emeritus Core Maintainers
One reality of the open source world (and, indeed, any passion projects) is that sometimes we have time to participate, and other times we don't. This is true even of the core maintainers of a project. In Helm, we wanted to find a way to allow core maintainers to diminish their responsibilities. At the same time, though, we wanted to perennially express our gratitude to these individuals for their leadership and influence.
Thus the Helm community is officially rolling out a new title in o...
January 4, 2018
Why Brigade Doesn't Do YAML
Brigade newcomers often ask me why Brigade doesn't use YAML. Coming from CircleCI, TravisCI, and Kubernetes itself, some developers expect that Brigade should be a "declarative" method of describing a sequence of steps to be run. This is not what Brigade is supposed to be. Brigade is a script execution environment. Brigade is shell scripting for Kubernetes.
This post explains the rationale of Brigade's scripting.
This is the first in a series about Brigade concepts. Current...
November 20, 2017
Securing Helm
There are four steps you should take if you are running Tiller (Helm's server-side component) in a cluster that has untrusted users or pods. These steps are done at installation time, and will substantially improve Helm's security.
The easiest way to install Tiller is with the helm init command. Run just like that, it will install a version of Tiller into the cluster. But the version it installs has permissions equivalent to root (if the cluster does not have RBAC enabled). To configu...
October 7, 2017
Kubernetes Needs to Ditch GitHub
The community has outgrown GitHub. And Drupal has a lesson for us. It's time to stop cobbling together a community from a host of free services, and it's time to build our own community.
The ProblemsI have been working within the Kubernetes community for a few years now, and have watched it grow from a small close-knit community into one of the hottest open source technologies. The user base has exploded. The technology has rapidly evolved. But for some reason, when it comes to build...
April 29, 2017
Make Your CapsLock Hyper
A CapsLock key is useless. So make it into something better: A Hyper key.
Back in 2014 I wrote about how I remapped my MacBook's CapsLock key to make it act like CTRL-CMD-SHIFT-OPTION, essentially giving me a new modifier key in the tradition of the old Hyper key.
For the last few years I have benefitted quite a bit from this setup. But recent changes to macOS have made the setup a little different.
Use Karabiner Elements to Remap CapsLockIn 2014, it took a couple of tools to remap a Cap...
April 18, 2017
How To Create Large Files for Testing
Sometimes you need to create a large file for testing. The command line tool dd is an easy way to create large files filled with random data.
I recently found myself needing to test uploading and downloading files of various sizes. So I wanted a quick way to create several files, each of very specific size. Almost all UNIX-like systems, including Linux and macOS, provide a tool called dd that makes this job easy.
The dd command is a low-level copying tool. Apparently, it's original intent...
April 14, 2017
Thoughts on the Microsoft Deis Acquisition
The Microsoft acquisition of Deis is my second major acquisition in a few years. Not long ago, Revolv was acquired by Google.
Earlier this week, Microsoft and Deis jointly announced the acquisition. Wired ran an interesting story with interviews, while TechCrunch and 20+ others explored Deis' history. The Denver Post, ran a nice story on Deis' local roots.
At the end of 2014, Google/Nest acquired Revolv, the startup I left HP to be a part of. Nest was in the midst of a rocky ride, and...