Skip to content

jkulzer/kube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Logo

Kubernetes Cluster

The source code for my own K3s-based Kubernetes-Cluster at home.

Currently in Alpha

Repo is incomplete and in active development

Report Bug
Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contact
  6. Acknowledgments

About The Project

(back to top)

Used technology:

Kubernetes Just Kubernetes
ArgoCD Automatically deploys manifests from git repo
cert-manager Certificate Management for Kubernetes
Grafana Dashboard that displays metrics from Prometheus
Istio The leading Kubernetes service mesh

Rook/Ceph Highly scalable distributed storage
MetalLB A load balancer
Prometheus Monitoring Scraper
Goldilocks CPU/Memory Reqests Reccomender
Kyverno Policy Management
Loki Log Aggregator
Headscale Mesh VPN

Repo Folder Structure

πŸ“ cluster            #all cluster-relevant stuff
β”œβ”€πŸ“ applications     #this is where all application definitions for argo-cd live 
β”œβ”€πŸ“ config           #here are all Chart.yaml, values.yaml and other deployment files
β”œβ”€πŸ“„ main.yaml        #this file defines the app of apps for argocd (it applies everything in the applications folder)
β””β”€πŸ“„ repository.yaml  #this file defines the repo from where this repo gets pulled in argo-cd

Example config folder structure

πŸ“ config                       #the config directory from above
| ...
β”œβ”€πŸ“ example-helm-application   #the folder of an application that gets deployed with helm and argocd
β”œβ”€β”€πŸ“„ Chart.yaml                #this file defines the helm chart that the application uses
β”œβ”€β”€πŸ“„ values.yaml               #this file configures aspects of the application
β”œβ”€πŸ“ example-manifest           #the folder of an application that has a manually written manifest
β”œβ”€β”€πŸ“„ example-manifest.yaml     #this is a manually written manifest for an application which doesn't have a helm chart
| ...

(back to top)

Getting Started

This is a possible way to get this setup running on your own cluster. It assumes you use K3s. I have never tested it, so use it at your own discretion.

Prerequisites

  1. Clone repo
git clone https://github.com/jkulzer/kube.git
cd kube

... //TODO 
Add missing steps

7. After some time, get the certificate generated for the domain using the following command:
```sh
kubectl get configmaps wildcard-kube-home-distribution -o jsonpath='{.data}' | jq -r '.["kube-home.crt"]' > /tmp/kube-home.crt

(back to top)

Roadmap

  • GitOps with ArgoCD
  • Automatic Certificate Management
  • SSO with Authelia and lldap
    • ArgoCD
    • Grafana
    • Homer
    • Kiali
    • Prometheus
    • Alertmanager
  • Rook/Ceph Backups
  • Monitoring
    • Secure Prometheus
    • Create nice dashboard
    • Alerting
  • Renovate
  • Unified Node management
    • Talos

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contact

Project Link: https://github.com/jkulzer/kube

(back to top)

Acknowledgments

Helpful repos:

(back to top)