Building a bitcoin controller for Kubernetes part IX – managing secrets and creating events

In the last post in this series, we have created a more or less functional bitcoin controller. However, to be reasonably easy to operate, there are still a few things that are missing. We have hardcoded secrets in our images as well as our code, and we log data, but do not publish events. These … Continue reading Building a bitcoin controller for Kubernetes part IX – managing secrets and creating events

Building a bitcoin controller for Kubernetes part VII – testing

Kubernetes controllers are tightly integrated with the Kubernetes API - they are invoked if the state of the cluster changes, and they act by invoking the API in turn. This tight dependency turns testing into a challenge, and we need a smart testing strategy to be able to run unit and integration tests efficiently. The … Continue reading Building a bitcoin controller for Kubernetes part VII – testing

Building a bitcoin controller for Kubernetes part V – establishing connectivity

Our bitcoin controller now has the basic functionality that we expect - it can synchronize the to-be state and the as-is state and update status information. However, to be really useful, a few things are still missing. Most importantly, we want our nodes to form a real network and need to establish a mechanism to … Continue reading Building a bitcoin controller for Kubernetes part V – establishing connectivity

Building a bitcoin controller for Kubernetes part IV – garbage collection and status updates

In our short series on implementing a bitcoin controller for Kubernetes, we have reached the point where the controller is actually bringing up bitcoin nodes in our network. Today, we will extend its logic to also cover deletions and we will start to add additional logic to monitor the state of our network. Step 9: … Continue reading Building a bitcoin controller for Kubernetes part IV – garbage collection and status updates

Building a bitcoin controller for Kubernetes part III – service accounts and the reconciliation function

In the previous post, we have reached the point where our controller is up and running and is starting to handle events. However, we hit upon a problem at the end of the last post - when running in-cluster, our controller uses a service account which is not authorized to access our bitcoin network resources. … Continue reading Building a bitcoin controller for Kubernetes part III – service accounts and the reconciliation function

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

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