This repository is meant for me to configure and manage my cluster. And to learn more K8s concepts and GitOps, DevOps I'll try to create my own [Helm Charts](https://github.com/Cloufish/helm-charts)
| Logo | Name | Description |
|---|---|---|
| NGINX Ingress Controller | Ingress Controller implementation for NGINX that can load balance Websocket, gRPC, TCP and UDP applications. | |
| Cert Manager | X.509 certificate management for Kubernetes. | |
| Flannel | My CNI of choice, used on all clusters | |
| Cloudflare Zero Trust | Used for private tunnels to expose public services (without requiring a public IP). | |
| CloudNativePG | Database operator for running PostgreSQL clusters | |
| OAuth2-Proxy | Simple Middleware that provides authentication using Identity Providers like Google, GitHub | |
| Authelia (**Coming soon**) | Authelia is a 2FA & SSO authentication server which is dedicated to the security of applications and users. | |
| SOPS and AGE Encryption | Used to encrypt secrets used by this repository | |
| Flux CD | My GitOps solution of choice. For K8s Administrator it's better than ArgoCD. | |
| Prometheus Operator | Manages deploying Prometheus, Grafana, AlertManager in my cluster | |
| Renovate | Automated dependency updates through pull requests on GitHub | |
| Longhorn | A distributed block storage system for Kubernetes with built-in Backups and Snapshots mechanism | |
| AWS S3 Bucket | For Storing Backups in the Cloud | |
| TrueNAS Core | For Storing Backups on-premise with NFSv4 Protocol | |
| Reloader | Reloader can watch changes in ConfigMap and Secret and do rolling upgrades on Pods |
- Define
${APP_app_name}variable inclusters/production/apps.yamlinpostBuild.substitute - Copy the existing application implementation in
apps/base/APPandapps/base/production(ORapps/base/staging) - Change name of variables inside
release.yamlby highlighting APP keyword and using shortcut Ctrl + Shift + L
- When deploying infrastructure app there's no distinction between production and staging.
- You define your HelmRelease inside
infrastructure/controllers/release.yaml - You need to add a resource to your release.yaml inside
infrastructure/controllers/kustomization.yaml - Additional Resources need to be inside
infrastructure/configs/and also need to be added toinfrastructure/configs/kustomization.yaml
- Proceed with the initial guide https://fluxcd.io/flux/guides/mozilla-sops/
Following instructions will be for WSL. If you are working on Linux then it's better to use VSCode Extension for SOPS. However VSCode installed on Windows didn't detect sops in WSL environment, and also on Windows
- Put your generated keys with
ageinside default folder for sops keys, which is$HOME/.config/sops/age/age.agekey - Configure config file for
.sops.yaml(Already in the repository). Put there your publicagekey - In your
$HOME/.bashrcsetexport SOPS_AGE_KEY_FILE="$HOME/.config/sops/age/age.agekey" - Use
sops decrypt secrets.yaml --output=secrets.yamlorsops encrypt secrets.yaml --output=secrets.yaml - However, even better option is to use VSCode Extension to automatically (This is tricky in Windows environment)
- descheduler
- NetBox
- Tandoor
- Implement Shell-Operator
- Have logs on remote NFS
- Authelia
- Lidify
- Backups of CloudNativePG Clusters
- Alerts, Logs
- Blackbox
- Loki
- Karma for Alerting Dashboard
- Kubernetes Monitoring
- Docker Swarm integrated monitoring
- Pi-Hole Monitoring
- TrueNAS Monitoring
- UPS Monitoring
- Networking
- VLANs
- Port Forwarding
- VPN
- Documentation of HomeLab
- Blog on AWS
- AI On Desktop:
- n8n AI Agents
- Backup workflows to Google Drive https://n8n.io/workflows/3295-ai-powered-language-teacher-with-telegram-google-sheet-and-gpt-4o/
- https://n8n.io/workflows/5541-track-ai-agent-token-usage-and-estimate-costs-in-google-sheets/
- Automate formatting Flashcard for Anki based on the Gender with Regex https://www.reddit.com/r/Anki/comments/jyw4kb/color_formatting_of_gendermarked_articles_for_4/
- Gather data
- Integrate Smart-Watch Data into Postresql
- Integrate Anki Statistics into Postresql
- Integrate AntennaPod Statistics into Posresql
- Integrate Todoist data into Postresql
- Job Searching https://n8n.io/workflows/8539-smart-linkedin-job-filtering-with-google-gemini-cv-matching-and-google-maps/
- Automate Todoist
- Auto-complete Anki task when I complete a certain deck
- Auto-complete Podcast Task after I listen to Podcast for a certain time
- Auto-complete morning routine tasks after 8:00 p.m
- HomeAutomation
- Tdarr
- Integrate Coding LLM into VSCode
- n8n AI Agents
- Once you do above ToDo List
Total Cost
- 1xRaspberry Pi with Camera Module
- 3x Sensors
- 2x Light Automation Kit
- 2x Smart Speakers or try to implement existing ones into smart
- Door Lock Detection System
- Tablet Wall Mount
- 2x Smart Power Outlet
- 2x Temperature Sensors
- Automate Passive Language Learning through automatic Podcasts when arriving to a room
- Automate Transcription of Podcasts
- Peace of mind
- HomeAssistant