Skip to main content

Posts

Showing posts from July, 2022

Kubernetes, GitOps and owning your data

This year I have been working on the ConfigSync project at Google.  The concept of syncing a git repository for a Kubernetes cluster has been around forever, for instance git-sync v2.0 was published in 2016 .  What is the draw of using git as the source of truth while it often is a mirror of what’s in the cluster?  There are some obvious reasons like sharing some common code and preserving versions.  Today, I’d like to focus on the data ownership aspect of Git and Kubernetes combination, which is one of the most powerful features of Kubernetes and should be considered by platform designers in the future. First key thing about Kubernetes is the Kubernetes Resource Model (KRM) which is described here .  While under the hood JSON or YAML gets sent over the wire to the cluster, the API style is very different than a most REST APIs which expect you to have a sequence of calls.  The focus of KRM is the final desired state which gets sent or retrieved from the cluster. There are multiple com