Cloudflare Tunnel Operator: Architecture

Quick Look Repository: Stats: Initial Approach: Ingress Controller I started out with a simple goal in mind that expanded a lot as I proceeded to code it. I wanted to build an Ingress Controller that does just one thing. It should read the annotations from my Ingress Resources, look at the ConfigMap and the target domain and modify the ConfigMap to add the target domain to it. FYI, an Operator is a combination of a Custom Resource and a Controller for it. What I wanted to build was just a Controller for an existing resource: an Ingress. The ConfigMap and the actual cloudflared deployment was to be manually deployed using the official insturctions . ...

January 21, 2022 · 4 min · Adyanth Hosavalike

Building a Kubernetes Operator: Why and How

Motivation The one source of trouble I have with Cloudflare Tunnels is that I cannot have a wildcard or a dynamic way to add and remove services. I needed to SSH into the server, edit the configuration file by hand and restart the service. Not done yet, I needed to copy the configuration changes and make the same on the other redundant server running on a backup ISP link. Still not done, I needed to add an entry on the Cloudflare Dashboard CNAMEing the hostname to the tunnel’s domain. The process was far too much of a pain to do every time I added or removed a service. ...

January 21, 2022 · 5 min · Adyanth Hosavalike

Migration from Compose to Kubernetes

Background If you have read my previous posts, I actively deploy and maintain multiple services for personal use, running from my home, accessible securely from the internet. I use docker-compose to keep all the 40+ services running smoothly. It works fine but is not a perfect way. If one of the containers goes down and becomes unhealthy, I would not know until I tried to access the service, but it was not. While I have a CI/CD pipeline set up with Drone , I cannot use it since there is no good way to deploy docker-compose files. They depend on folder names and other local parameters. If I wanted to scale these services tomorrow, I would have no way to do the same. The docker swarm is not comparable to what I had in mind. ...

January 20, 2022 · 2 min · Adyanth Hosavalike