Skip to content

kmjayadeep/homelab-k8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homelab K8s

This is where I keep all my kubernetes manifests for my homelab. Here is a screenshot of my homer dashboard.

Homer

Clusters

Andromeda

A mini pc sitting at my home

Milkyway

K3s running in hetzner cloud

Cosmos

Migrated from Andromeda to use cilium as CNI. I moved from bare metal to proxmox LXC and made a copy of the manifests with the name cosmos.

Automation

I used FluxCD to automate deploying the manifests in the clusters. It follows a gitops style to continuously watch and update the cluster state according to the manifests in git.

Folder structure

.
├── bases # Common bases across all clusters
│   ├── apps
│   │   ├── app1 # Application manifests (kustomization or helm)
│   │   │   ├── deployment.yaml
│   │   │   ├── ingress.yaml
│   │   │   ├── kustomization.yaml
│   │   │   └── service.yaml
│   └── infra # Infrastructure components
│       ├── infra-app1
│       │   ├── helm-release.yaml
│       │   ├── helm-repo.yaml
│       │   ├── kustomization.yaml
│       │   └── namespace.yaml
├── clusters
│   ├── cosmos # Customizations specific to cosmos cluster
│   │   ├── apps
│   │   │   ├── app1 # kustomization to apply patches
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── kustomization.yaml
│   │   │   │   └── secret-sealed.yaml
│   │   ├── bootstrap # FluxCD bootstrap manifests to initialize various components
│   │   │   ├── apps
│   │   │   │   └── app1.yaml
│   │   │   ├── flux-system # FluxCD system components
│   │   │   │   ├── gotk-components.yaml
│   │   │   │   ├── gotk-sync.yaml
│   │   │   │   └── kustomization.yaml
│   │   │   └── infra
│   │   │       ├── 01-cilium.yaml
│   │   │       ├── 02-metallb.yaml
│   │   │       ├── ...
│   │   └── infra # Infra customizations for cosmos
│   │       ├── infra1
│   │       │   └── kustomization.yaml
│   │       ├── infra2
│   │       │   ├── cluster-issuer.yaml
│   │       │   ├── kustomization.yaml
│   │       │   └── secret-sealed.yaml
│   └── milkyway
│       ├── apps
│       ├── bootstrap
│       └── infra
├── kubeseal # Public key for sealed secrets
│   ├── milkyway-sealed-secrets.pem
│   ├── pub-sealed-secrets.pem
│   └── README.md
├── README.md
└── sources # Dockerfiles
    └── 2fauth
        ├── docker-compose.yml
        ├── Dockerfile
        ├── entrypoint.sh
        └── README.md

Sealed secrets

Secrets are encrypted using sealed-secrets. The public is present in kubeseal folder and private key is present in the cluster.

About

Manifests for my homelab kubernetes cluster

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •