debugging tools: a preconfigured etcdclient static pod

In this post I am going to discuss git.io/etcdclient.yaml and why it’s neat!

When putting together content for a series of blog posts that I am doing around etcd recovery and failure scenarios, I realized that I was configuring the etcdclient to interact with the etcd cluster that kubeadm stands up.

I wanted to create a static pod that would sit on the same node as the static pod that operates the etcd server so that I can use it to troubleshoot the etcd cluster that kubeadm is bringing up.

git.io/etcdclient.yaml is an attempt to DRY (do not repeat yourself) work up.

It makes a set of assumptions.

  1. That etcd has been created by kubeadm as a local etcd
  2. That we have well defined locations for certs on the underlying file system layed down by kubeadm.
  3. That etcd is listening on localhost and a node ip or for our purposes at the very least localhost.

The static pod looks like:

The interesting bits are the env vars that configure etcdclient on your behalf.

With etcd and etcdclient the arguments that you can pass at the cli are also exposed as environment variables.

Now to see it in action!