My weird setup for end to end testing ExternalDNS


I wanted to write this blogpost for a long time, but always procrastinated doing it to work on more important things. Now I found a bit of time so I decided to just do it, but keep it reasonably short. The problem As you might know, I am the maintainer of ExternalDNS. The work I do requires, among other things, to take care of the release process of the project. ExternalDNS is not a project that is continuously delivered: we review PRs periodically which need to pass unit tests and when everything is green, we merge them to the default branch.…
Read more ⟶

One reason why YAML is bad for configuration


YAML is a data serialization language that is widely used for application configuration. YAML is relatively readable, flexible and, compared to JSON, it allows for adding comments. I don’t think that YAML is generally terrible for configuration, but the abuse of YAML when dealing with complex systems like Kubernetes makes all of its problems more evident: wrong indentations, the fact that you can cut a YAML in two and it’s likely still valid YAML, that problem with Norway and so on.…
Read more ⟶

Staging


“Death to staging”. “Staging lies”. “Staging is worst than it works on my machine”. “WTF!” I’ve heard those a lot. And, in a way, they are all true. A snowflake staging environment is bad. The reason? Because production has its unique characteristics in terms of topology, data and a million other details that go from uptime of the machines, to pretty much anything else. Put like that, no other environment other than production makes sense.…
Read more ⟶

Kubernetes sidecars


We often hear about sidecars in the context of Kubernetes pods. Kubernetes pods can contain multiple containers that will be guaranteed to run on the same machine, sharing the local network. A popular pattern is the “sidecar pattern”. A main container is the application that we intend to run, but more containers are run together with it as part of the same pod. Those other containers are called “sidecars” because they provide additional functionalities that complement the main application.…
Read more ⟶

Kpt, packages, YAMLs


A few days ago, Google announced Kpt, a tool “for Kubernetes packaging that uses a standard format to bundle, publish, customize, update, and apply configuration manifests”. I felt the urge to write a few words about the problem space, with no goal of being exhaustive… so here I am. Kubernetes packaging The whole Kubernetes ecosystem seems to be obsessed with the “packaging” problem. At first, Helm came out, providing a “Homebrew like” functionality.…
Read more ⟶

I lost my Monday to Kubernetes


So I made a few changes to an app and I redeployed it once more to Kubernetes. I figured that it stopped working in the cluster that I am using but I don’t know why. It works locally after all. Works on my machine, the most classic statement a developer can make, still true once more. I know that there were a bunch of things I touched: code and config (yeah I know, mistakes were made).…
Read more ⟶

Two years of Kubernetes on AWS


This post is not the normal post on experiences and discoveries of two years spent bringing Kubernetes to production on AWS. Instead, I wrote this to offer a look back at what it meant to run Kubernetes on AWS two years ago, by first describing some key facts from 2016 and then having a look at how things evolved today, hoping that this would help getting an idea of how things changed and how we can make them change for the better in the future.…
Read more ⟶

Things I've been doing recently


This blogpost is not the normal writeup about how I got into a new job, about the things that have been awesome or that suck. It’s not about love for my employer or previous ones and there is definitely no hate at all. So what’s left? This one is really about a bunch of things that I’ve been doing recently and in a somewhat different fashion: I switched my default working mode to “pair by default”.…
Read more ⟶

EKS "Review"


NOTE: those are just early impressions on a very promising product that I am very happy to see available and I am sure it will get better over time compared to what it is today. Today I spent some time playing with EKS (Elastic Container Service for Kubernetes), the newly announced Kubernetes service from AWS and I decided to write some notes down, not only for my team, but for whoever is interested in knowing more details on EKS.…
Read more ⟶

Junior Engineers


Yesterday night I went to see Erlend Øye live in Berlin. He did a great show, during which he played with some young musicians from the south of Italy where he is living (Syracuse). Some of them were really new to playing live: Erlend told us that one of them did not play ever live before the start of the tour and another one literally said “I wrote this song when I decided to start writing songs… last December”.…
Read more ⟶