Skip to content

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:

KubernetesJust Kubernetes
ArgoCDAutomatically deploys manifests from git repo
cert-managerCertificate Management for Kubernetes
GrafanaDashboard that displays metrics from Prometheus
IstioThe leading Kubernetes service mesh


Rook/CephHighly scalable distributed storage
MetalLBA load balancer
PrometheusMonitoring Scraper
GoldilocksCPU/Memory Reqests Reccomender
LokiLog Aggregator

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:
```shkubectl 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)

About

GitOps-Repo for Kubernetes Cluster

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Contributors

Languages