Saltar a contenido

Stack tecnológico

Inventario de tecnologías del HomeLab: diagrama por capas + lista con enlaces oficiales en el nombre de cada producto.

Parte de la guía de implementación. Vista C4 (modelo C4) complementaria: Arquitectura · Nivel 3 — Componentes · Nivel 4 — Despliegue.

Diagrama por capas

flowchart TB
  subgraph capa0 [Capa 0 — Hardware y SO]
    HW[Nodos_fisicos_Debian]
    Netplan[Netplan_br0]
    Ansible[Ansible]
  end
  subgraph capa1 [Capa 1 — Virtualizacion]
    Incus[Incus_cluster]
    IncusUI[Incus_UI]
  end
  subgraph capa2 [Capa 2 — Orquestacion base]
    K3s[K3s]
    KubeVip[kube_vip_opcional]
  end
  subgraph capa3 [Capa 3 — GitOps y red de servicios]
    ArgoCD[Argo_CD]
    Dex[Dex]
    GitHub[GitHub_OAuth]
    MetalLB[MetalLB]
    Gateway[Gateway_API_Kong]
  end
  subgraph capa4 [Capa 4 — Datos y secretos]
    OpenEBS[OpenEBS]
    Longhorn[Longhorn]
    SealedSecrets[Sealed_Secrets]
    OnePassword[1Password_SDK]
  end
  subgraph capa5 [Capa 5 — Plataforma y workloads opcionales]
    VCluster[vCluster_Platform]
    CAPI[Cluster_API]
    CAPN[CAPN]
    SUC[system_upgrade_controller]
  end
  HW --> Netplan --> Incus
  Incus --> IncusUI
  Dex --> IncusUI
  Netplan --> K3s
  K3s --> KubeVip
  K3s --> ArgoCD
  ArgoCD --> Dex
  Dex --> GitHub
  ArgoCD --> MetalLB --> Gateway
  ArgoCD --> OpenEBS
  ArgoCD --> Longhorn
  ArgoCD --> SealedSecrets
  Dex --> VCluster
  K3s --> CAPI --> CAPN
  Incus --> CAPN
  ArgoCD --> SUC

Capa 0 — Bootstrap

  • Ansible — Automatización idempotente de SO, red, Incus y K3s (distribución ligera de Kubernetes); Fases 0–3.
  • Netplan — IP estática en br0; Fase 1; identidad de nodo para Incus/K3s/CAPN.
  • Debian — SO base en los 3 nodos; prerequisito global.

Capa 1 — Virtualización

  • Incus — Clúster LXC/VM con quorum; Fase 2; sustrato para CAPN (Cluster API Provider for Incus) e instancias.
  • Incus UI — Administración web del clúster Incus; Fase 2 (cert) + Fase 4 (OIDC Dex).
  • Zabbly Incus stable — Repo de paquetes; Fase 2.

Capa 2 — Kubernetes management

  • K3s — Management cluster bare-metal; Fase 3.
  • kube-vip — VIP (IP virtual) opcional del API (Application Programming Interface) :6443; Fase 3 (fork).
  • CNI (elegir uno) — Fase 3:
  • Flannel — default embebido en K3s (vxlan en br0)
  • Canal — Flannel + políticas Calico
  • Calico — NetworkPolicy, BGP (Border Gateway Protocol) opcional
  • Cilium — eBPF, Hubble, políticas L3–L7
CNI
Flannel
Cero pasos extra en K3s
Sin NetworkPolicy nativa
Canal
Políticas sobre overlay conocido
Legacy; dos stacks
Calico
Madurez y BGP en L2
Más pods/RAM
Cilium
Observabilidad eBPF
CPU/kernel; validar ARM64

Capa 3 — GitOps, red y acceso

  • Argo CD — ApplicationSet de bootstrap (homelab-root) desde GitHub, por olas; Fase 4.
  • Dex — IdP OIDC (OpenID Connect) embebido en ArgoCD; SSO (inicio de sesión único) para ArgoCD, vCluster Platform e Incus UI (interfaz de usuario); Fase 4.
  • GitHub — Connector OAuth + repos GitOps; Fase 4.
  • MetalLB — LoadBalancer en LAN (red local); Fase 4 wave 0–1.
  • Gateway API con Kong Ingress Controller — HTTP(S) hacia ArgoCD y vCluster; Fase 4 wave 1 (alternativas: Traefik, NGINX Gateway Fabric).
  • 1Password Python SDK — Secretos OAuth desde la app local; Fase 4.

Capa 4 — Storage y secretos en clúster

  • OpenEBS — LocalPV default; Fase 4 wave 0.
  • Longhorn — Storage replicado cross-arch; Fase 4 wave 1.
  • Sealed Secrets — Secretos cifrados en git; Fase 4 y 6.
  • SOPS — Cifrado pre-bootstrap; profundización Secretos.

Capa 5 — Opcionales y operaciones

  • vCluster Platform — Clústeres virtuales + kubeconfig web (host K3s y vclusters); Fase 5.
  • Cluster API — API declarativa de clusters; Fase 6.
  • CAPN — Provider Incus para CAPI (Cluster API); Fase 6.
  • clusterctl — CLI (interfaz de línea de comandos) bootstrap CAPI; Fase 6.
  • system-upgrade-controller — Upgrades K3s escalonados; Fase 4 wave 3.