Devices

Reading Devices

I use different devices for consuming content from disparate streams, even for books. This post discusses each method’s various pros and cons and what fits best in what kind of circumstance. You can refer to the table at the end of the post, where I have broken down each comparison aspect. Physical Books This method of consuming knowledge became prevalent with Gutenburg’s printing press. Getting a new book always gives you that dopamine rush since it has a sense of newness, new cover, the smell of paper, etc. ...

June 30, 2021 · 13 min · Suraj Deshmukh
Self Signed Certificates

How to 'automatically' generate a self-signed TLS certificate for Kubernetes Admission Webhook Servers?

The previous blog talked about generating self-signed certificates using a binary. It was a manual, cumbersome process where you had to generate the certificates using a tool, embed them into a Kubernetes Secret via Helm chart, and then use it. There is a better way of doing it! Which is what this blog will discuss. We will use a Helm chart, which has a couple of Kubernetes Jobs that generates the self-signed certificate, embed them in a Kubernetes Secret and finally update the ValidatingWebhookConfiguration or MutatingWebhookConfiguration of your choice. And that’s it. Life is simpler! ...

June 25, 2021 · 4 min · Suraj Deshmukh
Systemd

How to create a Systemd daemon quickly?

If you have a script or a binary and want to run it as a Systemd service, keep following. This blog will show you how to take any such executable code and run it using Systemd. Sure, you can do similar stuff using Docker as well. Although there are certain downsides of using Docker (alone) for managing the daemons. Systemd is good at log management on the node over a Docker container. If a container fails, you may or may not have access to the logs. Systemd provides constructs in managing dependencies quite well. And finally, you may not be using Docker on the machine, while Systemd is quite ubiquitous on any Linux. ...

June 19, 2021 · 2 min · Suraj Deshmukh
Golang and Kubernetes

How to import 'any' Kubernetes package into your project?

The client libraries that Kubernetes ships are meant to be imported, and you definitely don’t need this post explaining how to import them in your Golang based project. A simple go get ... should do the trick. But, what about the packages that are not meant to be imported? Or the ones that cannot be imported because of “technical reasons” ? Could you simply add them to your import statements in the .go file, and the go binary will do the right thing when you build the code? Well, let’s find that out! ...

May 30, 2021 · 5 min · Suraj Deshmukh
cert

How to generate a self-signed TLS certificate for Kubernetes Admission Webhook Servers?

UPDATE: There is a way to generate these certificates automatically. To find out how, read this post. If you are writing a webhook server for Kubernetes Admission Controllers like ValidatingAdmissionWebhooks or MutatingAdmissionWebhooks, you must expose it over HTTPS. To run these servers on HTTPS, you need TLS certificates. There are solutions available which you can use to solve this problem, first and foremost that comes to my mind is cert-manager. It is a great project and automates this problem. But it is an added dependency that you might have to keep running in your cluster. ...

May 21, 2021 · 2 min · Suraj Deshmukh
TPOM

Learnings from 'The Psychology of Money'

Synopsis of the Book The Psychology of Money, written by Morgan Housel, published in 2020, could be categorised under Psychology, Finance, and Nonfiction. The author wrote an article three years ago which got a lot of traffic hence decided to write a book out of it. Last year I saw that the book was recommended by many folks in my network and on Twitter. All of the recommenders were highly impressed by the book and spoke intensely of it. Now that I have finished it, I can understand why! ...

May 20, 2021 · 4 min · Suraj Deshmukh
Config

Mitigation of: Access Any Kubernetes Secret

In the previous blog, we discussed how any user without RBAC access to a Kubernetes secret can use a trick to access that secret. To mitigate that problem, we will use a validating admission webhook. But before looking at what sorcery this validating admission webhook server is, let us understand how Kubernetes handles the API requests. What are admission controllers? All requests going to the Kubernetes API server go through the following four steps: ...

May 20, 2021 · 4 min · Suraj Deshmukh