Automate Let's Encrypt certificate generation with Caddy

Jun 16, 2024

I needed to set up a small internal network with a few hosted services. I wanted these services to route through virtual hosts so I could have good semantic host names. Naturally I wanted all services over https with trusted certificates.

Under the covers of SOPS for codifying secrets

Jun 10, 2024

SOPS (Secrets OPerationS) is a command line tool that encrypts and decrypts files in a way that allows you to codify CI/CD and dev processes that require secrets. In an encrypted form, secrets can be stored in a Git repository, with appropriate access control, in the knowledge that it is hard to decrypt the secrets without the authorisation to decrypt. Codifying of secrets and SOPS tooling, helps make rotation of secrets easier, and hence encourages us to become better at timely rotations, in turn de-risking exposure of historical secrets.

Argo CD in k3d with end-to-end encryption and trusted HTTPS certs

May 31, 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.

Routing k3d deployments with a traefik reverse proxy

May 28, 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.

Setting up persistent storage in a k3d cluster

May 26, 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 PersitentVolume (PV) to define the storage resource, and a PersitentVolumeClaim (PVC) to use the PersitentVolume.

Kubernetes Raspberry Pi cluster with k3s

May 25, 2024

I had a couple of Raspberry Pis hanging around in my office, and having been using k3s recently on my local laptop, I thought I'd spin up a kubernetes cluster on Pis with k3s. Doing this has been on my mind for a while to help with some deeper understanding of Kubernetes.

Running local AI code assist

May 24, 2024

I'm intrigued in how effective it is to run code assist models locally. I'm keen to explore the available IDE extensions and AI models. Let's start with VSCode, the Code GPT extension and models run locally with Ollama.

Getting started with a local Argo CD stack

May 21, 2024

Argo CD synchronises the resources in our k8s cluster with a desired state defined in a Git repository. This allows us to declare the desired state instead of explicitly deploying and updating resources. Argo CD will take care of applying updates to ensure that the apps in our cluster are in the desired state.

Spinning up a local Gitea service for GitOps practice

May 20, 2024

I wanted a quick throwaway git service for some GitOps practice. Gitea is an open source Git hosting service. It is powerful for self-hosting a GitHub-like service, but also lightweight and straightforward to spin up as needed for little experiments.

Comparing local k8s stacks

May 19, 2024

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

Monitoring Kubernetes metrics with Grafana

May 17, 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.

Running GenAI on your local machine

May 16, 2024

If you are interested in exploring Generative AI without relying on cloud services, Ollama can run open models entirely locally, giving you a chance to explore GenAI APIs and capabilities.

Installing k8s resources with Helm charts

May 10, 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.

Local Kubernetes stack with k3d in seconds

May 07, 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.

Welcome to the Adaptive Kind blog

May 02, 2024

I started this blog to help explore recent evolutions in software engineering. It gives me a chance to learn above aspects of platform engineering, AI, and developer experience along with being mindful of sustainable computing. Many of these tools and techniques I have used in my "day job" delivering production systems, however I sometimes do not get the chance to play as much as I'd like. By doing this blog I intend to make the time for this to happen.