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.
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 simpleyaml
command declaration files. - SOPS: Tool for managing secrets.
For more detail information take a look into the ./docs
directory.
From Repository run the following steps to deploy the GitOps managed Kubernetes Cluster:
- Install System: Use
./nixos
flake for system installation. - Setup Kubernetes Cluster: Use
ansible
playbooks from./ansible
for cluster setup. - Deploy GitOps Kubernetes Operator: Use runner tool
Task
to deployFlux
Operator to the Kubernetes Cluster.
Footnotes
-
Infrastructure as Code (IaC) is the process of managing and provisioning computer infrastructure through configuration files. ↩
-
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. ↩