From 4f4ed37d02639f3c916a869ed886e56f5f90f1aa Mon Sep 17 00:00:00 2001 From: Khue Doan Date: Sat, 5 Jun 2021 03:21:44 +0700 Subject: [PATCH] Add quick explanation on how it works --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 32d644d3..194822d7 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,21 @@ ## Architecture +Quick explanation on how it works (currently just my quick brain dump because more people is visiting the repo): + +- Enter the tools container, which contains all the neccessary tools (see building instruction bellow) +- Run `make` + - Ansible will render the configuration file for each bare metal machine (like IP, hostname...) + - The tools container will create sibling containers to build a PXE server (includes DHCP, TFTP and HTTP server) + - Ansible will wake the machines up using Wake on LAN + - The machine start the boot process: + - BIOS boot in network mode and look for DHCP server + - DHCP server point it to the TFTP server to get boot files and boot config + - The boot config contains parameter to get automated OS installation config file (for example kickstart on CentOS or Fedora) + - The OS get installed and the machine reboots to the new operating system + - Terraform will create a Kubernetes cluster + - ArgoCD will install the applications + | Layer | Name | Description | Provisioner | |-------|------------------------|---------------------------------------------------------|---------------------| | 0 | [metal](./metal) | Bare metal OS installation, Terraform state backend,... | Ansible, PXE server |