Modern self-hosting framework, fully automated from empty disk to operating services with a single command.
Go to file
Khue Doan 26d7fa3e2f Use container for master nodes
For better resource usage, still use VM on worker nodes due to ISCSI
bug in the Linux kernel
2021-05-03 00:28:16 +07:00
apps Always apply to argocd namespace 2021-05-01 23:12:43 +07:00
docs Use container for master nodes 2021-05-03 00:28:16 +07:00
infra Use container for master nodes 2021-05-03 00:28:16 +07:00
metal Standardize TODOs 2021-05-01 22:51:55 +07:00
scripts Initial scripts 2021-05-02 22:25:38 +07:00
tools Standardize TODOs 2021-05-01 22:51:55 +07:00
.gitignore Move RKE cluster to sperate module, with cleaner Ansible check 2021-05-02 23:07:16 +07:00
LICENSE Create LICENSE 2021-02-12 21:29:21 +07:00
Makefile Rework global makefile 2021-04-25 13:24:26 +07:00
README.md Use quote instead of code for warning 2021-05-02 22:26:54 +07:00

Homelab

⚠️ WORK IN PROGRESS

Hardware

Hardware

  • 4 nodes of NEC SFF PC (Japanese version of the ThinkCentre M700)
    • CPU: Intel Core i5-6600T
    • RAM: 16GB
    • SSD: 128GB
  • TP-Link TL-SG108 switch

Architecture

Layer Name Description Provisioner
0 metal Bare metal OS installation, LXD, Terraform state backend,... Ansible, PXE server
1 infra Kubernetes clusters, shared apps (Git, Vault, Argo...) Terraform, Helm
2 apps Argo

Usage

Prerequisite

For the controller (to run Ansible, stateless PXE server, Terraform...):

For bare metal nodes:

  • PXE IPv4 enabled
  • Wake-on-LAN enabled
  • Secure boot disabled (optional, depending on the OS)

Configurations

Building

Open the tools container:

make

Then build each layer:

make metal
make infra
make apps

Acknowledgments