Turing Klustered

Posted by Codepope's Development Hell on Sunday, October 27, 2024

Codepope Avatar Say hello to my new avatar first by the fine person behind Design Thinking! comics. One of my favourite strips with a salty bitterness and rage which the artist also managed to embed in my avatar. Check it out. (And the hero image is the long winter sun on Wimbledon Common pond, in case you are bored of macro pics of gadgets). Now on with the actual nerdery….

K8S and CNPG under the desk

Regular readers will know that I got a Turing Pi 2 aaaages ago and eventually got a full stack of RK1 cards giving me a 4TB SSD, 128GB RAM, Rockchipped powerhouse. And as with all these things it literally got shelved and lost in the old procastination-queue.

Well, it finally got its chance over the last week to be brought up with Ubuntu 24.04 on ARM and following various instructionals on the web, I got the ritual of Kubernetes going. That’s one combined node for K8S control plane and worker and three worker nodes. Oh, I felt like a rock star for about 20 seconds.

That’s because when I went to deploy some Postgres on the cluster with Cloud Native Postgres (CNPG to friemds) it came to a rapid and grinding halt. It’s a simple issue once you know. The default example bringups of K8S lack a storage class and as thats something your database kinda needs, thats why it stopped hard.

A little dig found that if I intalled the Rancher local path provisioner like so:

 kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

And then made it the default:

kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

Then the example cluster from CNPG deployed like a charm. Anyway, I’m blogging that to remind me in future and maybe get someone out of a hole. I’ve been running K8S on Kind and on VM’s and on actual clusters, but there’s something special when all the power is sitting in a micro ITX box under your desk.

Wezterm is in….

This was all happening while I broke in Wezterm. I’d been playing around with Alacritty as an alternative terminal and while it worked the config file thing was all well and good but it didn’t feel like a win. And I was noticing a pattern. A lot of the articles on Alacritty I was seeing were often updated with a post saying “Now using Wezterm”.

So I had a look. It’s a Rusty terminal with a Lua interpreter resposible for dynamically running its configuration which makes it sure flexible. And it runs the config as soon as you save an update to it making it very reactive to configuration changes. So far, so good, and something to play with while we wait for Ghostty to go public which is going to be very very soon with version 1.0 landing in December.

I just wish all the config drive terminals would add a “friendly config” environement which generated config files to get users on the happy path. Browsing through docs and example/masterpiece configs is not the best experience, it could be so much smoother.