niki-on-github / k3s-infra-playground

Playground for my upcoming kubernetes homelab.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitOps Homelab

My GitOps Kubernetes Infrastructure and Application Setup hosted on my personal Git Server. Feel free to look around. Be aware that not all configuration files are available in my public repository.

Overview

This repository provides the Infrastructure as Code1 (IaC) and GitOps2 State for the following tools:

  • NixOS: Linux distribution based on Nix to provide a declarative and reproducible system.
  • Ansible: Reproducible System Configuration.
  • Terraform: Build and Deploy VMs.
  • Packer: Generate virtual machine images from source template.
  • K3S: Lightweight certified Kubernetes distribution.
  • Flux: GitOps Kubernetes Operator that ensures that my cluster state matches the desired state described in this repository.
  • Renovate: Automatically updates third-party dependencies declared in my Git repository via pull requests.
  • Task: A task runner and build tool as an alternative to Make with simple yaml command declaration files.
  • SOPS: Tool for managing secrets.

For more detail information take a look into the ./docs directory.

Deployment

From Repository run the following steps to deploy the GitOps managed Kubernetes Cluster:

  1. Install System: Use ./nixos flake for system installation.
  2. Setup Kubernetes Cluster: Use ansible playbooks from ./ansible for cluster setup.
  3. Deploy GitOps Kubernetes Operator: Use runner tool Task to deploy Flux Operator to the Kubernetes Cluster.

Footnotes

  1. Infrastructure as Code (IaC) is the process of managing and provisioning computer infrastructure through configuration files.

  2. GitOps is an operational framework that takes best practices from application development such as version control, collaboration, compliance, and CI/CD, and applies them to infrastructure automation.

About

Playground for my upcoming kubernetes homelab.


Languages

Language:Nix 54.8%Language:Shell 21.4%Language:HCL 16.7%Language:Python 6.2%Language:Jinja 0.9%