Kube-System and Cluster Infrastructure

Relevant source files

The kube-system namespace serves as the operational bedrock of the home-ops cluster. It contains the essential daemonsets, controllers, and plugins that interface with the underlying Talos Linux nodes and provide core services like DNS, networking, and hardware acceleration to all other namespaces.

System Architecture Overview

The infrastructure layer is managed through a layered approach:

  1. Bootstrap: Initial CRDs and core controllers (Cilium, CoreDNS, Spegel) are deployed via helmfile to establish the network and image registry connectivity bootstrap/helmfile.d/01-apps.yaml1-142
  2. Kustomization: The kube-system apps are structured as Kustomize resources, inheriting common components like SOPS secret decryption kubernetes/apps/kube-system/kustomization.yaml1-17
  3. Hardware & Features: Node-level capabilities are exposed to the cluster via specialized plugins for Intel GPUs and general hardware labeling.

Component Interaction Map

This diagram illustrates how core system components interact to provide the foundation for application workloads.

“Kube-System Core Infrastructure”

Sources:kubernetes/apps/kube-system/kustomization.yaml1-17kubernetes/apps/kube-system/spegel/app/helmrelease.yaml26-28bootstrap/helmfile.d/01-apps.yaml44-57


Node Features and Hardware Plugins

The cluster utilizes specialized plugins to bridge the gap between physical hardware and Kubernetes orchestration. This ensures that workloads requiring specific capabilities (like hardware-accelerated transcoding) are scheduled on compatible nodes.

For details, see Node Features and Hardware Plugins.

Sources:kubernetes/apps/kube-system/kustomization.yaml12-17kubernetes/apps/kube-system/spegel/app/helmrelease.yaml1-29


System Upgrades and Bootstrap

The lifecycle of the cluster—from initial provisioning to continuous updates—is handled by a dedicated set of tools and controllers.

Bootstrap Process

The cluster bootstrap follows a strict dependency chain defined in helmfile. This ensures that networking (Cilium) and DNS (CoreDNS) are functional before higher-level operators like Flux or External Secrets are introduced bootstrap/helmfile.d/01-apps.yaml44-124

“Bootstrap Dependency Chain”

Sources:bootstrap/helmfile.d/01-apps.yaml15-124

Automated Upgrades

System maintenance is managed via the system-upgrade namespace (governed by TUPPR), which coordinates rolling upgrades of Talos Linux and Kubernetes versions across the node pool. This process utilizes a versions.env file to maintain a single source of truth for the desired cluster state.

For details, see System Upgrades and Bootstrap.

Sources:bootstrap/helmfile.d/01-apps.yaml1-142bootstrap/helmfile/apps.yaml1-139


Core Networking and Storage Services

While kube-system handles low-level infrastructure, it also hosts the controllers for cluster-wide networking and shared storage access.

ComponentRoleFile Reference
CiliumeBPF-based CNI for networking and security policies.kubernetes/apps/kube-system/cilium/ks.yaml
CoreDNSCluster-internal DNS and service discovery.kubernetes/apps/kube-system/coredns/ks.yaml
CSI Driver NFSAllows pods to mount shared storage from the Proxmox/ZFS host.kubernetes/apps/kube-system/csi-driver-nfs/ks.yaml
Metrics ServerProvides resource usage data for HPA and kubectl top.kubernetes/apps/kube-system/metrics-server/ks.yaml
DeschedulerEvicts pods to balance node resource utilization.kubernetes/apps/kube-system/descheduler/ks.yaml

Sources:kubernetes/apps/kube-system/kustomization.yaml9-14bootstrap/helmfile.d/01-apps.yaml15-50