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.
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