Skip to main content

Welcome to Kimbernetes K8s Flux

Kimbernetes K8s Flux is a comprehensive GitOps repository that manages the entire lifecycle of the Kimawesome Kubernetes cluster. Built on FluxCD, this infrastructure-as-code approach ensures declarative, version-controlled, and automated deployment of all cluster resources.

Quick Start

Get your cluster up and running quickly

Architecture Overview

Understand the system design and components

Setup Guide

Step-by-step installation instructions

Reference

Configuration reference and examples

Key Features

GitOps with FluxCD

Declarative cluster management with automated reconciliation from Git

Kustomize Overlays

Environment-specific configurations using base and overlay patterns

Comprehensive Observability

Full monitoring stack with Grafana, Prometheus, Loki, and Alloy

Certificate Management

Automated TLS certificate provisioning with cert-manager

Load Balancing

MetalLB for bare-metal load balancer support

Secure Secrets

Encrypted secrets management with sealed-secrets

Gateway API

Modern API gateway with Cilium and kgateway

Infrastructure as Code

Everything versioned, reviewable, and reproducible

What’s Included

Infrastructure Components

The cluster includes essential infrastructure services:
  • Networking: Cilium CNI with kube-proxy replacement and Gateway API support
  • Load Balancer: MetalLB for exposing services on bare-metal
  • Certificates: cert-manager for automated TLS certificate management
  • Secrets: Sealed-secrets for encrypting sensitive data in Git
  • Metrics: metrics-server for resource utilization tracking
  • Gateway: kgateway for API gateway functionality

Observability Stack

Complete monitoring and logging solution:
  • Grafana Operator: Manages Grafana instances and dashboards
  • Prometheus: Metrics collection and alerting
  • Grafana Alloy: Telemetry data pipeline and collection
  • Loki: Log aggregation and querying

Applications

Production workloads managed by Flux:
  • DNS Server: bind9 for internal DNS resolution
  • Knowledge Hub: Documentation and knowledge management
  • Tooling: n8n automation and yopass secret sharing
  • Version Management: MySQL-backed version control systems

Repository Structure

kimbernetes-k8s-flux/
├── cluster/
│   └── kimawesome/
│       └── flux-system/         # Flux system components
└── overlays/
    ├── base/                    # Base configurations
    │   ├── cert-manager/
    │   ├── grafana/
    │   ├── metallb/
    │   └── ...
    └── kimawesome/              # Environment-specific overlays
        ├── infrastructure/      # Core infrastructure
        ├── applications/        # Application deployments
        └── site/               # Site-specific resources

How It Works

1

Declare Desired State

Define your infrastructure and applications as YAML manifests in this Git repository
2

Flux Monitors Repository

FluxCD continuously watches the repository for changes
3

Automatic Reconciliation

When changes are detected, Flux automatically applies them to the cluster
4

Self-Healing

If cluster state drifts from Git, Flux corrects it automatically

Getting Started

Prerequisites

System requirements and dependencies

Cluster Installation

Install Kubernetes with kubeadm and Cilium

Bootstrap Flux

Initialize FluxCD in your cluster

Initial Configuration

Configure core infrastructure components

Need Help?

Troubleshooting

Common issues and solutions

Useful Commands

Quick reference for common operations

GitHub Repository

View source code and contribute

External Resources

FluxCD, Kubernetes, and related documentation

Build docs developers (and LLMs) love