This repository was born out of the need to better monitor the health and uptime of an ever-growing environment of services. It contains everything required to bootstrap and manage my cloud infrastructure. It is based on the GitOps methodology and uses Argo CD as the GitOps delivery mechanism.
At the highest possible level, this repo and CaC workflow consists of two parts:
- terraform contains the stage 1 bootstrapping for the cluster nodes. This includes the partial infrastructure bootstrapping on OCI, installation of a base OS and setup of a kubernetes distribution. After completion of this stage, the cluster is ready and capable of running workloads.
- argo contains the final stage 2 GitOps cluster configuration. This includes everything running inside kubernetes in the cluster and ranges from basic system infrastructure like ingress, CCM and CSI to more user-style applications such as uptime monitoring apps. The argo installation on the cluster is not yet performed automatically, but could also be triggered from stage 1 easily. The contained argo applications are automatically installed and/or reconciled on the cluster without* user interaction. After completion of this stage, the cluster is fully set up and performs its monitoring and alerting duties.
Component | Purpose | Notes |
---|---|---|
terraform | Infrastructure Bootstrap | |
Ubuntu Server 24.04 | Base Operating System | |
k3s | k8s Distribution / Install Mechanism | stacked HA controlplanes |
ArgoCD | GitOps Automation inside the Cluster | |
SOPS | Secrets Management | via ksops, using age rather than pgp |
tailscale | Overlay Mesh VPN |
Name | Purpose | Notes | |
---|---|---|---|
OCI CCM / CSI | Oracle Cloud Infrastucture k8s Automation | ||
system-upgrade-controller | System Upgrade Controller | ||
![]() |
external-dns | DNS Management Automation | |
cert-manager | Automated Certificate Management | Let's Encrypt via ACME DNS | |
ingress-nginx | Ingress Controller | ||
CloudNativePG | Cloud-Native PostgreSQL Operator | ||
reloader | Hot-Reload for ALL Workloads |
Name | Purpose | Notes | |
---|---|---|---|
Gatus | Endpoint Monitor and Status Page | Monitor configuration as code |