GitOps/Flux2 managed full-stack Kubernetes cluster.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Skyler 74e9ad937b Schedule Authentik on amd64. 7 hours ago
.github Renovate: Auto-update minor and patch Ansible deps 1 week ago
.idea fix: lol digg 8 months ago
archive Secret update 1 month ago
cluster Schedule Authentik on amd64. 7 hours ago
provision/ansible chore(deps): update dependency community.sops to v1.4.1 5 days ago
.gitignore Ignore .idea. 2 months ago
.pre-commit-config.yaml chore(deps): update precommit hook adrienverge/yamllint to v1.26.3 (#60) 1 year ago
.sops.yaml Add Ansible to Git. 1 year ago
README.md Fixup readme 1 month ago

README.md

📂  Repository structure

The Git repository contains the following directories under cluster and are ordered below by how Flux will apply them.

  • flux directory is the entrypoint to Flux
  • bootstrap directory contains a simple Kustomize resource to deploy Flux to an empty cluster
  • charts directory contains all of my different chart repos
  • crds directory contains custom resource definitions (CRDs) that need to exist globally in my cluster before anything else exists
  • config directory contains cluster-wide configs like global variables
  • core directory (depends on crds) are important infrastructure applications (grouped by namespace) that should never be pruned by Flux
  • apps directory (depends on core) is where my common applications (grouped by namespace) are placed.
cluster
├── apps
├── bootstrap
├── charts
├── config
├── core
├── crds
└── flux

🔧  Tools

Tool Purpose
ansible Preparing Ubuntu for Kubernetes and installing k3s
flux Operator that manages your k8s cluster based on your Git repository
go-task A task runner / simpler Make alternative written in Go
sops Encrypts k8s secrets with GnuPG

💻 Nodes

Node Hostname RAM Storage Function Operating System
Raspberry Pi 4 Model B k8s-master1 8GB 64GB SSD Kube Master Node Ubuntu 22.04 LTS
Raspberry Pi 4 Model B k8s-worker5 8GB 64GB SSD Kube Worker Node Ubuntu 22.04 LTS
Raspberry Pi 4 Model B k8s-worker7 8GB 320GB HDD Kube Worker Node Ubuntu 22.04 LTS
Synology NAS NAS 16GB 2 x 3TB HDD, 2 x 6TB HDD, 1 TB NVME NFS Server DSM 7
VM on Synology k8s-worker-amd64-0 5GB 32GB Unknown Kube Worker Node Ubuntu 22.04 LTS
VM on home-server k8s-worker-amd64-2 8GB 64GB SSD Kube Worker Node Ubuntu 22.04 LTS
HP EliteDesk 800 G2 k8s-worker-amd64-3 32GB 256GB SSD Kube Worker Node Ubuntu 22.04 LTS

Network

All nodes are connected to a dual-stack network, with private IPv4 and public IPv6.
Kubernetes nodes are on their own VLAN which has access to the NAS.