Skip to content

IaC for standing up a HA cluster managed using GitOps within 2(-ish) clicks on OCI always-free tier ressources

License

Notifications You must be signed in to change notification settings

anokfireball/cloud-as-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloud-as-Code logo

Node Uptime Cluster Uptime Service Uptime

Bootstrap and GitOps sources to get my cloud infrastructure set up consistently.

☁️ Cloud-as-Code (CaC™)

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.

🔰 Overview

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.

📐 Tech Stack

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

📱 Applications

🤖 System-Level

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

👨‍💻 User-Level

Name Purpose Notes
Gatus Endpoint Monitor and Status Page Monitor configuration as code

About

IaC for standing up a HA cluster managed using GitOps within 2(-ish) clicks on OCI always-free tier ressources

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •