Playbooks Overview¶
The playbooks/ directory contains a sequence of Ansible playbooks that automate the provisioning, configuration, and application deployment on a Kubernetes cluster.
Each playbook handles a specific task—from preparing the infrastructure to installing monitoring tools, certificate management, GitOps tools, and storage solutions.
The mainplaybook.yaml is the orchestrator playbook that ensures all other playbooks run in the correct order.
Playbook Execution Flow¶
Here are the playbooks and what they do. Click any to read detailed documentation:
mainplaybook.yaml — Orchestrates all individual playbooks.
generate_config.yaml — Generates necessary deployment configs and environment variables.
00_cluster_config.yaml — Sets cluster-level settings (hostnames, IPs, roles).
01_harden_vm.yaml — Applies OS-level security hardening to all VMs.
02_configure_first_master.yaml — Bootstraps the first Kubernetes control plane node.
03_install_kube_vip.yaml — Enables HA by deploying Kube-VIP.
04_configure_other_masters.yaml — Adds other master nodes to the control plane.
05_configure_worker.yaml — Joins worker nodes to the cluster.
06_install_monitoring.yaml — Installs monitoring tools like Prometheus and Grafana.
07_install_metallb.yaml — Deploys MetalLB for LoadBalancer support in bare-metal setups.
08_install_nfs.yaml — Sets up NFS for persistent volume sharing.
09_install_longhorn.yaml — Installs Longhorn for distributed block storage.
10_install_cert_manager.yaml — Manages TLS certificates using cert-manager.
11_install_ingress.yaml — Installs an Ingress Controller for routing external traffic.
12_install_monitoring_certificates.yaml — Adds TLS for Prometheus and Grafana.
13_install_rancher.yaml — Installs Rancher for Kubernetes management.
14_install_argocd.yaml — Installs ArgoCD for GitOps-style deployments.
15_install_argorollouts.yaml — Enables progressive delivery with Argo Rollouts.
16_install_vault.yaml — Deploys HashiCorp Vault for secure secrets management.
17_install_harbor.yaml — Installs Harbor as a container image registry.
18_install_gitlabrunner.yaml — Deploys GitLab Runner.
reset_all.yaml — Removes all deployed resources and resets the cluster.