As part of of my homelab journey, I wanted to build a CI/CD pipeline for my apps and wanted to use the GitHub self-hosted runners.
There are basically two installation options: as a stand-alone system, or inside a Kubernetes cluster. I eventually decided to deploy it in my Kubernetes cluster I already had running(more specifically, a K3s cluster), so the runners would spin up on demand and there was no need to have a dedicated VM for that(didn’t like the idea of installing it in a shared VM with other service/s either)
In Kubernetes we can use the Secret object to store any sensitive information to be used within the Pod app without the need of being hard-coded inside the Pod spec or inside the container image.
Secrets values are stored by default as base64 encoded strings, which means we need to encode them before being saved them(and decode if we want to see its values) which can make the whole process a little bit cumbersome but easily solvable with some scripting.