Posts
Hosting a Helm Chart Repository on GitHub with chart-releaser
Step-by-step guide to publish Helm charts on GitHub Pages using the helm/chart-releaser-action, with a clean repository layout that decouples the application from its chart
Hosting a Helm Chart Repository on GitHub with chart-releaser
GitHub Pages plus the helm/chart-releaser-action is the de facto way to turn a GitHub repository into a Helm chart repository. No extra hosting, no separate registry — just a gh-pages branch and a workflow file.
This post walks through the layout I use in practice: one repository for the application, a separate one for the chart.
Installing the Vagrant libvirt Provider on Ubuntu 22.04 LTS
End-to-end setup for running Vagrant on top of KVM/libvirt on Ubuntu 22.04 — virtualization packages, group membership, NFS, plugin build dependencies, and the vagrant-libvirt plugin itself
Installing the Vagrant libvirt Provider on Ubuntu 22.04 LTS
Vagrant ships with VirtualBox as its default provider, but on Linux KVM/libvirt is the better fit: it’s the kernel’s native hypervisor, it’s faster, and it doesn’t require an out-of-tree kernel module. The bridge between the two is vagrant-libvirt, a Vagrant plugin that drives libvirt instead of VirtualBox.
This post walks through the full setup on Ubuntu 22.04 LTS (Desktop or Server). It is largely a distillation of Paul Neumann’s gist, which itself builds on Philippe Vanhaesendonck’s Oracle Linux write-up — kept here for my own reference and slightly reorganized.
Go Project Structure: Patterns That Scale
Practical guide to structuring Go projects from flat layouts to hexagonal architecture, with examples for CLIs, APIs, and monorepos
Go doesn’t enforce a project layout. That freedom is powerful but requires discipline — start simple and let structure emerge as complexity grows.
gitlab-backup2s3: Encrypted GitLab Backups to S3, with Kubernetes Support
A Docker image wrapping gitlab-backup with AES-GCM encryption and Kubernetes CronJob deployment for automated, secure GitLab backups to S3
gitlab-backup2s3: Encrypted GitLab Backups to S3, with Kubernetes Support
Source code: github.com/sgaunet/gitlab-backup2s3 Helm chart: github.com/sgaunet/helm-gitlab-backup2s3
In the previous article, I covered gitlab-backup, a CLI tool for exporting GitLab projects and groups as portable archives. It handles the export, the restore, and supports both local and S3 storage natively.
But for production backup workflows — especially in a Kubernetes environment — you often want more: scheduled execution, optional encryption at rest, and a container image that bundles everything together. That’s exactly what gitlab-backup2s3 brings to the table.
Stop Committing Secrets: A Practical Guide to Pre-Commit Secret Detection
How to combine Gitleaks as a fast pre-commit hook with TruffleHog in CI/CD for verified secret scanning, plus strategies for handling false positives
Stop Committing Secrets: A Practical Guide to Pre-Commit Secret Detection
You’ve done it. Or someone on your team has. A .env file slips into a commit, an AWS key ends up in a config file, a GitLab token gets hardcoded in a script “just for testing”. A few minutes later it’s in your git history — forever.
This post covers the current best practice for catching secrets before they ever touch your repository, without drowning your team in false positives.