Recordings + Slides from OSCON 2018

I had the opportunity to present at OSCON 2018 this year. My session was Herding cat pictures: How to develop, deploy, and operate services at Reddit scale. I talked through our rapid growth as an engineering org, some of the growing pains that resulted, and how we shifted our Infrastructure team from operations to enablement.

  • If you'd like to hear my bumbling, check out the recording.
  • I've also posted the slides.

python-colormath 3.0.0 released

After a lengthy delay, python-colormath 3.0.0 has been released. The big changes are requiring networkx>=2.0 and shifting our Python 3 support from 3.3/3.4 to 3.5/3.6. See the release notes for the full details.

Impending Archival

I'll probably give this release a while to simmer in the wild to make sure I didn't break anything. At some arbitrary point in the next few months, I intend to archive python-colormath in Github so users understand that it will no longer be maintained. This codebase is now ten years old, needs more love than I can afford to give it, and I'm very far from this subject matter these days.

If you are interested in taking the reigns, please get in touch with me and we can talk potential fit!

Update: Jan 2018

We have some preliminary interest, so the project remains un-archived. We're working through a few updates and will see if activity remains steady enough to transfer the project over!

Fire up an interactive bash Pod within a Kubernetes cluster

In those cases where you need a throw-away interactive shell within your cluster:

$ kubectl run my-shell --rm -i --tty --image ubuntu -- bash

You may, of course, use a different image or shell. Some of the arguments explained:

  • my-shell: This ends up being the name of the Deployment that is created. Your pod name will typically be this plus a unique hash or ID at the end.
  • --rm: Delete any resources we've created once we detach. When you exit out of your session, this cleans up the Deployment and Pod.
  • -i/--tty: The combination of these two are what allows us to attach to an interactive session. 
  • --: Delimits the end of the kubectl run options from the positional arg (bash).
  • bash: Overrides the container's CMD. In this case, we want to launch bash as our container's command.

Note that you'll need to update your apt cache before you can install packages:

$ apt update
$ apt install cowsay

Once you are done with your tinkering:

$ exit

Post-exit, the Deployment and Pod that kubectl created will both be stopped and deleted, taking with it our container and anything we did within it.