Building a bitcoin controller for Kubernetes part II – code generation and event handling

In this post, we will use the Kubernetes code generator to create client code and informers which will allow us to set up the basic event handlers for our customer controller. Before we start to dig into this, note that compared to my previous post, I had to make a few changes to the CRD … Continue reading Building a bitcoin controller for Kubernetes part II – code generation and event handling

Building a bitcoin controller for Kubernetes part I – the basics

As announced in a previous post, we will, in this and the following posts, implement a bitcoin controller for Kubernetes. This controller will be aimed at starting and operating a bitcoin test network and is not designed for production use. Here are some key points of the design: A bitcoin network will be specified by … Continue reading Building a bitcoin controller for Kubernetes part I – the basics

Understanding Kubernetes controllers part IV – putting it all together

In the last few posts, we have looked in detail at the various parts of the machinery behind Kubernetes controllers - informers, queues, stores and so forth. In this final post, we will wrap up a bit and see how all this comes together in the Kubernetes sample controller. The flow of control The two … Continue reading Understanding Kubernetes controllers part IV – putting it all together

Understanding Kubernetes controllers part III – informers

After understanding how an informer can be used to implement a custom controller, we will now learn more about the inner working of an informer. We have seen that essentially, informers use the Kubernetes API to learn about changes in the state of a Kubernetes cluster and use that information to maintain a cache (the … Continue reading Understanding Kubernetes controllers part III – informers

Understanding Kubernetes controllers part II – object stores and indexers

In the last post, we have seen that our sample controller uses Listers to retrieve the current state of Kubernetes resources. In this post, we will take a closer look at how these Listers work. Essentially, we have already seen how to use the Kubernetes Go client to retrieve informations on Kubernetes resources, so we … Continue reading Understanding Kubernetes controllers part II – object stores and indexers

Understanding Kubernetes controllers part I – queues and the core controller loop

In previous posts in my series on Kubernetes, we have stumbled across the concept of a controller. Essentially, a controller is a daemon that monitors the to-be state of components of a Kubernetes cluster against the as-is state and takes action to reach the to-be state. A classical example is the Replica set controller which … Continue reading Understanding Kubernetes controllers part I – queues and the core controller loop

Learning Go with Kubernetes IV – life of a request

So far we have described how a client program utilizes the Kubernetes library to talk to a Kubernetes API server. In this post, we will actually look into the Kubernetes client code and try to understand how it works under the hood. When we work with the Kubernetes API and try to understand the client … Continue reading Learning Go with Kubernetes IV – life of a request