Pie charts aren't good


If you worked with me, you know I don’t like pie charts. I always flag them in a dashboard review and ask if they can be replaced with something else and sometimes I will go as far as telling that they suck (they do). It’s time I write down why so that I have to stop repeating myself and I can link to this post in the future because you should trust me more than chatgpt or some other site with ads.…
Read more ⟶

Generic control plane


I’ve been watching what the folks working on KCP have been doing for a while and I think it’s very cool. There is a lot that can be said about Kubernetes and control planes especially in the context of enterprise companies and what I am sure about is that there is still no standard or no winner for control planes and for managing multiple Kubernetes clusters at any meaningful scale. Lots of companies are still adopting simple approach and aren’t explicitly dealing with multicluster or real platform level APIs.…
Read more ⟶

The cheap photo cloud


I get it, cloud services are convenient. For a lot of situations, I’d say there is no alternative either: it’s cheaper to use them, they are reliable enough. Sometimes though, they can be expensive, but in my case it’s not about money, rather about a slight obsession about making my things more private that has triggered me to start building a little cloud of my own for hosting photos. The reality however is that I am cheap, really cheap.…
Read more ⟶

The dream of a standardized development environment


The content of this post can be summarized in one sentence: there are still people debating vim versus emacs (vim, obviously). Instead of engaging in this debate, I want to discuss the “dream” of a standardized development environment. Many companies and engineering teams strive to find the right tools for the job, but it is rare to find something that makes everyone happy. Often, I hear about “paved paths”, but there are pitfalls in this concept that we need to be aware of.…
Read more ⟶

Kubernetes and environment variables


This week I had to work more than usual with lots of Kubernetes resources which (ab)use environment variables and I thought I would write about the topic because there was enough that I think is somewhat confusing or surprising. Starting from the official Kubernetes doc, we’re greeted right away with a relatively complex example of what is possible, defining an environment variable that combines other environment variables defined in the same resource.…
Read more ⟶

How DaemonSet’s Status field works


This week I embarked on an unexpected journey to figure out how the Status on DaemonSets work. I was trying to debug a problem in a piece of software that I maintain at work, which involves computing the Status for DaemonSet objects in Kubernetes, and I naively assumed that DaemonSets were just a “regular resource” in Kubernetes, but unfortunately I should have remembered that there are only guidelines for resources to implement Statuses and that controllers are pretty much free to do whatever they want.…
Read more ⟶

ExternalDNS maintainer meeting 2023-08-10


This post is just a quick summary of what we have discussed as part of a maintainers’ meeting that we held on 2023-08-10. Next priorities We’re going to focus on a few things: Webhook provider, which has this PR as single pre-requisite. We have a plan of testing with new external providers (i.e. IONOS) and hope to get some feedback on its implementation. This will allow us to plan the move of some of the alpha providers to be out of tree and enable new providers to be created.…
Read more ⟶

Practical PR authoring tips


I have been working for GitHub for a few years and, as you surely know, GitHub is a big fan of pull requests. The teams I have been working with have been mostly distributed anywhere between UTC+2 and UTC-7 and that meant very little overlap opportunities for synchronous work. At the same time, during my tenure at the company, I did quite a bit of opensource work on ExternalDNS, which meant working with different sets of people, different cultures, different skills and, at the end of the day, different ways of collaboration.…
Read more ⟶

There's no such thing as a stable system


This post is the short story of an incident that I experienced while operating services at a previous job. At the time, we were running a microservices architecture and we had a small service that was responsible, without going too much in the details, about user employee authentication. The service was a real microservice: it was doing exactly one thing and doing it well. At the time my team inherited that service, it was stable and not being developed anymore.…
Read more ⟶

The desired state


When talking about Kubernetes, a key concept is the one about desired state vs actual state and the functionality of reconciling the actual state to match the desired state. While that is easy to understand, the idea of the desired state needs to be discussed a bit further. What is the desired state from a user’s point of view? A growing system In the early days of Kubernetes, there were only a few resources: ReplicationControllers, Services, ConfigMaps and a few other things.…
Read more ⟶