18 Jun 2026 (6 hours old) |
3773 words
· 0 LoC,
· ~19 min read
Running one Flux-managed cluster is useful.
Running three Flux-managed clusters from the same repository is where the repository structure starts to matter.
The moment you have dev, test, and prod, you need to answer a very practical question:
Which cluster should receive which namespace, app, policy, and controller?
Read more
18 Jun 2026 (6 hours old) |
2387 words
· 0 LoC,
· ~12 min read
A local Flux setup becomes much more interesting once it manages more than demo applications.
In the previous article, Learning GitOps with Flux, k3d, and the Flux CLI, I used a small k3d repository to explain the basic reconciliation loop. This article builds on that idea and adds two tools that make a cluster feel more like a platform:
- Kyverno for policy enforcement
- Capsule for Kubernetes multi-tenancy
Read more
18 Jun 2026 (6 hours old) |
2293 words
· 0 LoC,
· ~12 min read
GitOps is one of those ideas that sounds more complicated than it has to be.
The useful version is simple: Git becomes the desired state for your cluster, and a controller inside Kubernetes keeps the real cluster aligned with that desired state.
That is what Flux does.
Read more
12 Jun 2026 (6 days old) |
2267 words
· 0 LoC,
· ~12 min read
Most Linux installations still treat the filesystem as an afterthought.
You make one root partition, maybe one home partition, format everything as ext4, and move on. That works. But once you start doing frequent package upgrades, distro experiments, workstation tuning, or homelab maintenance, the lack of cheap snapshots becomes very noticeable.
This is where BTRFS becomes practical.
Read more
12 Jun 2026 (6 days old) |
2529 words
· 0 LoC,
· ~13 min read
If you only ever build one image with one Dockerfile, Docker Bake can look a bit underwhelming.
You move a docker build command into a docker-bake.hcl file, type docker buildx bake, and at first glance it feels like you just created one more file for no obvious reason.
That is the wrong way to evaluate it.
Read more