~tillmzw/k8s

my kubernetes deployment for bare-metal and argo-cd

988e72b tt-resources: update

~tillmzw pushed to ~tillmzw/k8s git

17 hours ago

d658646 argocd: update

~tillmzw pushed to ~tillmzw/k8s git

5 days ago

#Local bare-metal Kubernetes Cluster

Provision a Fedora CoreOS-based k3s Kubernetes cluster on a local Proxmox hypervisor.

#Overview

This repository contains a complete GitOps-driven Kubernetes setup with two main components:

  1. Infrastructure Provisioning (infra/): infra/README.md
  2. GitOps Configuration (gitops/):
  • ArgoCD-driven configuration management
  • Infrastructure components: metallb, ingress-nginx, sealed secrets, longhorn, cert-manager
  • Application-specific resources
  • Automatic synchronization policies and prioritization of critical services

#Prerequisites

  • Proxmox
    • at least 8GB RAM
    • at least 500GB available storage
    • default configuration, i.e. no special network configs, storage, firewalls etc.
  • DHCP on the host network for control and worker nodes
  • at least one free static IP for the load balancer deployed
  • kubectl & helm

#Installing

  • For the basic infrastructure, see infra/README.md
  • Get kubeconfig from the master node
  • Bootstrap argo-cd: there is small script in the gitops folder that bootstraps ArgoCD: gitops/kickstart.sh. It helm-installs ArgoCD and installs two resources that will generate the rest of the contents of the gitops directory.

NOTE: The gitops directory is hard-wired to this specific repository. You will probably need to change all repository URLs etc.

NOTE: The gitops directory contains configuration for metal-lb which will assign the IP 10.0.0.15 to the load balancer. You probably want to change that and configure routing from the internet to that IP on ports 80 & 443 (and any other ingress ports you need).