{"id":19240434,"url":"https://github.com/jyje/cluster","last_synced_at":"2026-06-13T06:33:27.895Z","repository":{"id":254132540,"uuid":"845452152","full_name":"jyje/cluster","owner":"jyje","description":"🏡 My home cluster","archived":false,"fork":false,"pushed_at":"2026-06-01T21:43:46.000Z","size":5353,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-01T23:22:27.388Z","etag":null,"topics":["argo-cd","k8s-at-home","kubernetes","kubernetes-cluster","microk8s","open-webui"],"latest_commit_sha":null,"homepage":"https://app.jyje.online","language":"Go Template","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jyje.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-21T09:27:24.000Z","updated_at":"2026-06-01T21:43:49.000Z","dependencies_parsed_at":"2024-11-07T15:26:52.915Z","dependency_job_id":"d8dbe566-a855-46a4-9ae6-571c75e7d9d3","html_url":"https://github.com/jyje/cluster","commit_stats":null,"previous_names":["jyje/cluster"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jyje/cluster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jyje%2Fcluster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jyje%2Fcluster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jyje%2Fcluster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jyje%2Fcluster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jyje","download_url":"https://codeload.github.com/jyje/cluster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jyje%2Fcluster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34275068,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argo-cd","k8s-at-home","kubernetes","kubernetes-cluster","microk8s","open-webui"],"created_at":"2024-11-09T17:07:25.380Z","updated_at":"2026-06-13T06:33:27.890Z","avatar_url":"https://github.com/jyje.png","language":"Go Template","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jyje/cluster\n\n[![Dashboard](docs/assets/homer-dashboard.png)](https://app.jyje.online)\n\n## Kubernetes Cluster v2\nSecond version of my Raspberry Pi cluster powered by MicroK8s.\nKeywords: **DevOps**, **MLOps**, **LLMOps**, **GitOps**, **Service Mesh**, **MicroK8s**\n\nThis is a self-hosted, sovereign Kubernetes cluster built on Raspberry Pi hardware. It represents a \"Production-grade HomeLab\" where enterprise-level technologies are implemented in a resource-constrained environment.\n\nThis v2 cluster focuses on **Declarative Everything**, **Flexible AI Serving**, and **Hybrid Storage Governance**.\n\n\u003e [!NOTE]\n\u003e Service Mesh (Istio Ambient) is currently in evaluation and temporarily disabled for resource optimization.\n\n## Technical Architecture\n\n### 1. Hardware Stack\n![Architecture](docs/diagrams/hardware-architecture.png)\n\n- **Platform**: 4x Raspberry Pi 4/5 (8GB RAM each)\n- **Orchestration**: [MicroK8s](https://microk8s.io/)\n- **OS**: Debian GNU/Linux 12 (bookworm)\n\n### 2. Networking \u0026 Service Mesh\n- **Service Mesh**: **Istio Ambient Mesh** (Evaluation / Temporarily disabled)\n- **Ingress**: NGINX Ingress Controller\n- **Load Balancer**: MetalLB (L2 mode)\n- **DNS/Certs**: Cert-manager with Cloudflare integration\n\n### 3. LLMOps Architecture\n```mermaid\ngraph TD\n    subgraph UI_Layer [User Interface]\n        OWUI[\"Open WebUI (Pod)\"]\n    end\n\n    subgraph LLM_Orchestration [AI Infrastructure]\n        LiteLLM[\"LiteLLM Proxy (Pod)\"]\n    end\n\n    subgraph Storage [State \u0026 Vectors]\n        subgraph Persistence\n            CNPG[\"CloudNativePG (Cluster)\"]\n            Qdrant[\"Qdrant (Vector DB)\"]\n        end\n    end\n\n    subgraph LLM_Backends [Inference Services]\n        NIM[\"NVIDIA NIM (External)\"]\n        Ollama[\"Ollama (Local Pod)\"]\n        OpenAI[\"OpenAI (External)\"]\n    end\n\n    %% Flow Relationships\n    User((User)) --\u003e OWUI\n    OWUI -- \"LLM Request (v1)\" --\u003e LiteLLM\n    OWUI -- \"Query/Store Documents\" --\u003e Qdrant\n\n    LiteLLM -- \"Proxy / Routing\" --\u003e NIM\n    LiteLLM -- \"Proxy / Routing\" --\u003e Ollama\n    LiteLLM -- \"Proxy / Routing\" --\u003e OpenAI\n    LiteLLM -- \"Sync Metadata\" --\u003e CNPG\n\n    %% Styling\n    style User fill:#333,color:#fff\n    style OWUI fill:#3b82f6,color:#fff,stroke:#1d4ed8\n    style LiteLLM fill:#ef4444,color:#fff,stroke:#b91c1c\n    style Qdrant fill:#10b981,color:#fff,stroke:#047857\n    style CNPG fill:#8b5cf6,color:#fff,stroke:#6d28d9\n    style NIM fill:#84cc16,color:#fff,stroke:#4d7c0f\n    style Ollama fill:#f59e0b,color:#fff,stroke:#b45309\n```\n\n### 4. GitOps \u0026 Secrets\n- **Continuous Delivery**: [ArgoCD](https://argoproj.github.io/cd/)\n- **Secrets**: Sealed Secrets \u0026 [Infisical](https://infisical.com/)\n\n### 5. Storage Strategy\n- **Object Storage**: [SeaweedFS](https://github.com/seaweedfs/seaweedfs) (S3-compatible)\n- **Distributed Block**: [Longhorn](https://longhorn.io/)\n- **Legacy Storage**: NFS Subdir External Provisioner\n\n## Key Features\n- **ARM64 Optimized**: All components are tailored for AARCH64.\n- **Hybrid Storage**: Combining high-performance block storage with scalable object storage (SeaweedFS).\n- **Flexible AI**: Integrated with NVIDIA NIM for high-performance inference, with future plans for **Private LLM** infrastructure (e.g., NVIDIA DGX Spark).\n- **Observability**: LGTM Stack (Loki, Grafana, Tempo, Mimir) for full-stack monitoring.\n\n## Maintainers\n- [jyje](https://github.com/jyje)\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjyje%2Fcluster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjyje%2Fcluster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjyje%2Fcluster/lists"}