... managed by Flux and Renovate π€
This repository provides the configuration for our cloud infrastructure. Working to adhere to Infrastructure as Code (IaC) and GitOps practices, this system is intended for easy maintenance and use; along with making the system accessible, transparent, and more easily studied in a broader sense.
This repo borrows heavily from k8s-at-home/template-cluster-k3 and its derivatives such as Devil Buhl's home-ops and Toboshii Nakama's in structure and practices.
Clusters run on Talos Linux, an immutable and ephemeral Linux distribution built around Kubernetes, deployed on bare-metal. Rook Ceph running hyper-converged with workloads provides persistent block, object, and file storage.
talhelper is used to organize the Talos config files.
Flux watches the k8s directory and makes changes based on the YAML manifests.
Renovate watches the entire repository looking for dependency updates, when they are found a PR is automatically created. When PRs are merged, Flux applies the relevant changes to the cluster.
The cloud infrastructure is intended to be able to support multiple clusters, and as such provides a distinction between global configuration and cluster deployments || config. Clusters are named based on the airport geographically closest (*ish) + sequential discriminator.
π k8s # All k8s infrastructure defined below
ββπ clusters # all instantiated k8s clusters, defined as code
β ββπ icao-00 # example cluster
β ββπ apps # Apps in cluster by namespace
β ββπ bootstrap # Cluster-specific keys
β ββπ flux # Flux configuration.
ββπ global # global resources
ββπ bootstrap # Bootstrapping data (flux installation, global key)
ββπ config # Universal config data
ββπ repos # (Helm|Git)Repository Flux sources
Some cilium nightmare.
Ok question time is over now. go home.
Thanks to all folks who donate their time to the Kubernetes @Home community.