Git hooks for code quality: catching issues before they escape
There's a particular kind of frustration that comes from pushing code, feeling good about your progress, then watching CI fail on a missing semicolon. It's the development equivalent of tripping over your own shoelaces – embarrassing and entirely preventable.
Deploying Kube resources with the Argo CD app of apps pattern
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.
Under the covers of SOPS for codifying CI/CD and IaC secrets
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.
Getting started with GitOps with a local Argo CD stack
Argo CD creates and updates resources in a Kubernetes cluster to achieve the desired state that is defined in a Git repository. This allows us to declare the desired state of our resources and leave Argo CD to do the work of deploying and updating the cluster to achieve this state.
Spinning up a local Gitea service for GitOps practice
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.