Homelab Infrastructure Documentation

A comprehensive home lab infrastructure setup using vSphere, BOSH, Kubernetes, and modern cloud-native technologies.

Get started now View on GitHub


Overview

This repository contains infrastructure-as-code configurations for a production-grade home lab environment featuring:

  • Compute: 3x Intel NUC6i7KYK (upgrading to MINISFORUM MS-A2)
  • Virtualization: VMware vSphere with ESXi
  • Container Platform: Tanzu Kubernetes Grid (TKG/TKGs)
  • Container Registry: Harbor
  • CI/CD: Concourse
  • Storage: Synology DiskStation DS918+
  • Networking: Ubiquiti UniFi with NSX-T

🚀 2025 Upgrade Plans

The homelab is undergoing a comprehensive upgrade to modernize infrastructure and support advanced Tanzu workloads:

📋 Complete Upgrade Strategy

Investment: ~$3,850 over 4 phases Performance: 4x compute capacity, 10G networking, 16TB+ storage

Phase-by-Phase Guides

Timeline

  • Q1 2025: Foundation (rack infrastructure) ✓
  • Q2 2025: Network and storage upgrades
  • Q3-Q4 2025: Compute platform migration

Quick Start

Prerequisites

  • vSphere cluster with ESXi hosts
  • BOSH CLI installed
  • kubectl and Tanzu CLI
  • Access to required networks and certificates

Core Services Deployment

  1. Deploy BOSH Director:

    cd bosh
    ./create-director.sh
    
  2. Deploy Concourse CI/CD:

    ./create-concourse.sh
    
  3. Deploy Harbor Registry:

    cd k8s/harbor
    kubectl apply -f values-day0.yaml
    
  4. Deploy Kubernetes Clusters:

    cd tanzu
    tanzu cluster create -f tkg-cluster-1.yaml
    

Architecture

Network Infrastructure

┌─────────────────────┐
│   USW-Aggregation   │ (10G Core Switch)
│   (Office)          │
└──────┬──────────────┘
       │ 10G Trunk
┌──────┴──────────────┐
│   Garage Switch     │
│   (Existing)        │
└─────────────────────┘

VLANs:

  • VLAN 10: Management
  • VLAN 20: vMotion
  • VLAN 30: Storage
  • VLAN 100: TKG Workload
  • VLAN 110: TKG Frontend

Hardware Specifications

Current Setup (3x Intel NUC6i7KYK)

  • CPU: Quad-core i7-6770HQ
  • Memory: 64GB per host
  • Storage: 250GB NVMe M.2 SSD per host
  • Network: 1x built-in NIC + 1x USB Ethernet adapter

Planned Upgrade (3x MINISFORUM MS-A2)

  • CPU: AMD Ryzen 9 7945HX (16C/32T, up to 5.4 GHz)
  • Memory: 32GB DDR5 (expandable to 96GB)
  • Storage: 1TB SSD + 3x M.2 slots
  • Network: 2x SFP+ 10G ports + 2x 2.5G LAN ports

Documentation Structure

Public Documentation

🔒 Protected Documentation

Operational details, configurations, and sensitive information requiring authentication. Direct Access to Protected Content

Source Code & Configurations

  • BOSH - BOSH deployment manifests and configurations
  • Kubernetes - Kubernetes applications and cluster configurations
  • Tanzu - Tanzu Kubernetes Grid configurations
  • NSX-T - NSX-T network virtualization automation
  • Scripts - Installation and management scripts

Key Components

BOSH Platform

  • Director: Central deployment and lifecycle management
  • Concourse: Automated CI/CD pipelines
  • MinIO: S3-compatible object storage
  • Harbor: Enterprise container registry

Kubernetes Platform

  • TKG Clusters: Production and development clusters
  • Knative: Serverless workloads
  • Contour: Ingress controller
  • Cert-Manager: Certificate automation
  • Build Service: Cloud-native buildpacks

Network Infrastructure

  • NSX-T: Software-defined networking
  • Load Balancers: HAProxy and Contour
  • VLANs: Segmented network architecture
  • DNS: Automated DNS management

Security

  • Certificate Management: Automated certificate generation and rotation
  • RBAC: Role-based access control across all platforms
  • Network Segmentation: VLAN-based network isolation
  • VPN Access: Secure remote access to lab environment

Monitoring & Operations

  • Health Monitoring: Built-in BOSH health monitoring
  • Metrics: System and application metrics collection
  • Logging: Centralized log aggregation
  • Backup: Automated backup procedures for critical data

Development Workflow

  1. Code Changes: Push to repository
  2. CI Pipeline: Concourse automatically builds and tests
  3. Container Build: Build Service creates optimized containers
  4. Registry Push: Images pushed to Harbor registry
  5. Deployment: Automated deployment to TKG clusters

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following existing patterns
  4. Test thoroughly in a non-production environment
  5. Submit a pull request

License

This project is for educational and home lab purposes. See individual component licenses for specific terms.


This project is for educational and home lab purposes.