/bare-metal-kubernetes

A repository to setup a bare metal kubernetes cluster using ansible

Primary LanguageJinja

Bare Metal Kubernetes Cluster

Description

This repository contains the needed elements to setup a bare metal cluster using ansible.

This repo does basic configuration for the following components:

  • Ansible - for automation of deployment
  • Kubernetes - for container orchestration
  • Cilium - as the CNI
  • MetalLB - for load balancing
  • Rook/Ceph - for automatic provisioning of storage including s3 buckets
  • Helm - for software management and installation
  • ArgoCD - For deployment management
  • Kubernetes metrics-server - for basic resource monitoring
  • Prometheus/Grafana - for advanced resource monitoring and visualization
  • FreeIPA - For centralized Identinty Management.

Setup

If you are starting with a clean working environment you can do the following to boot strap your working environment on your local computer or in a distrobox container:

The setup sript will install a few basic apt and pip packages needed to run the ansible scripts to setup the workstation. The setup script will also setup the pre-commit hooks for this repo.

eval $(./setup.sh)
ansible-playbook -i hosts/hosts.yaml setup-workstation.yml
ansible-playbook -i hosts/hosts.yaml setup-workstation-dev.yaml
ansible-playbook -i hosts/hosts.yaml setup-workstation-apps.yaml