Auto-completion of Kubernetes custom resource definitions (CRDs)

By Ian Homer - 27 Jun 2025

Custom Resource Definitions (CRDs) are a powerful way to extend Kubernetes. They let products provide their own Kubernetes resource types tailored to their specific needs. A Kubernetes operator may then use such a CRD to manage applications or provide other custom behaviour. Writing these CRDs freehand can be error-prone. It's easy to misplace indentation in YAML or mistype a property name. If these mistakes make it into a cluster, they might only surface when a pod fails to start or a resource behaves unexpectedly.

Read more

Deploying Kube resources with the Argo CD app of apps pattern

By Ian Homer - 17 Aug 2024

Now that I have my local kube stack with K3s on a couple of Raspberry Pis, my next task I wanted to tackle was to set up an App of Apps structure so that I could (repeatedly) go from empty kube stack to my desired set of applications deployed into the cluster. The app of apps pattern in Argo CD helps define the apps that we want deployed, all driven from Git repository that describes a desired state.

Read more

Local Argo CD in k3d with trusted HTTPS routes

By Ian Homer - 31 May 2024

The non-trusted certificate warnings when I spun up Argo CD locally in a k3d cluster were bugging me. Let's fix them and get Argo CD spun up locally without these warnings, with trusted certificates and end-to-end encrypted flows.

Read more

Routing k3d deployments with a Traefik reverse proxy

By Ian Homer - 28 May 2024

I started writing a blog that needed a clean way to expose two services from the cluster, and it got me wondering the best way to do this. I'm often aiming to write blogs on this site in a zero-to-goal manner, so they can be read in isolation. k3d by default uses traefik, which is pretty neat when it comes to low configuration, however it did lead me to experimenting with ways to expose services with a lightweight approach that I could use in future blogs. Let's have a look at some of the options.

Read more

Setting up persistent volumes for storage in a k3d cluster

By Ian Homer - 26 May 2024

To set up any service that needs to retain data, we're going to need to make sure the storage is persistent through pod and cluster restarts. In Kubernetes we can set up a PersistentVolume (PV) to define the storage resource, and a PersistentVolumeClaim (PVC) to use the PersistentVolume.

Read more

Deploying Kubernetes on a Raspberry Pi cluster with k3s

By Ian Homer - 25 May 2024

K3s is a fantastic lightweight Kubernetes distribution that is so quick to install on a collection of Raspberry Pis. I had a couple of Raspberry Pis sitting idle so had a go at spinning up a Kubernetes cluster on them. It's great way to get some deeper understanding and hone your Kubernetes skills.

Read more

Comparing local k8s stacks; k3d, minikube and microK8s

By Ian Homer - 19 May 2024

I explored spinning up a local cluster with k3d recently, however I realised I should have compared k3d with other approaches. Let's compare kind, minikube and microk8s and see how these different k8s stacks help for local development.

Read more

Monitoring Kubernetes metrics with Grafana and Prometheus

By Ian Homer - 17 May 2024

Grafana is an open observability platform that gives your team a centralised view on the health and behaviour of your system. We'll use Kubernetes metrics to quickly spin up some dashboards and provide foundations to experiment and learn more about Grafana.

Read more

Installing k8s resources with Helm charts

By Ian Homer - 10 May 2024

Helm charts encapsulate and simplify deployments to Kubernetes. They allow us to deploy applications quickly in a consistent way. Let's deploy an application into our local cluster to help us get started with using Helm since I'll use them in following blogs.

Read more

Local Kubernetes stack with k3d in seconds

By Ian Homer - 07 May 2024

Kubernetes helps with the running of containerized applications at scale, however you don't need a complex infrastructure to test many of the aspects of a Kubernetes cluster. You can spin up a cluster with k3d on your local machine in seconds and start experimenting with Kubernetes.

Read more