Tumblr engineers can’t contain their modernisation tools

Tumblr engineers can’t contain their modernisation tools

Tumblr has open sourced a trio of tools it built to help modernise and move the 12-year-old infrastructure and blogging platform to a combination of containers and Kubernetes.

K8s-sidecar-injector has been built to help those in the process of containerising applications by offering a dynamic service to inject sidecars to emulate older deployments for example. With the injector, developers can add annotations to their pods, the tool will use the Kubernetes API to find them, read which sidecars have been requested, and inject them.

According to the announcement Tumblr likes using sidecars for cluster-wide environment variables, volumes for shared configurations, as well as logging and metrics daemons. This has not only proven to be less error-prone than manual copy-pasting to the company, centralising configuration of sidecars also let the engineering team reduce complexity of certain deployments as well as cronjobs.

Tumblr also open sourced k8s-config-projector. This is a command-line tool that uses so-called projection manifest files to extract settings from a repository hosting configuration files (structured as well as unstructured ones) and turn them into Kubernetes’ ConfigMaps.

The tool is meant to be run by continuous integration tools like Jenkins as configuration changes are pushed into a git repo. The system is then able to update applications running in Kubernetes without the need for container redeployments.

Also released was k8s-secret-projector that works in a similar way but was built for credential rotation and secret access. It combines a projection manifest repository with a few repos containing credentials and can be used by CI to generate Kubernetes secret YAML files when changes occur.

The trio are licensed under the Apache License 2.0 and available on GitHub.