# Turbo Mothership Bare metal Kubernetes management cluster for provisioning infrastructure via Cluster API and Tinkerbell. ## Deployment Flow 1. **Deploy k0s** with Cilium CNI and OpenEBS storage 2. **Bootstrap** ArgoCD, cert-manager, ingress-nginx, and sealed-secrets via Helm 3. **Pivot to ArgoCD** for GitOps-managed applications 4. **Install Tinkerbell** for bare metal provisioning (PXE, DHCP, workflows) 5. **Install CAPI Operator** (Cluster API lifecycle manager) 6. **Install CAPI Providers** for infrastructure provisioning 7. **Install Netris controller and operator** for fabric management 8. **Spin up virtual baremetals and switches** to use as cluster resources ## Directory Structure ``` ├── bootstrap/ # Helm chart for initial cluster bootstrap ├── apps/ # ArgoCD Application manifests │ ├── infra/ # Infrastructure apps (cert-manager, ingress-nginx, etc.) │ ├── bm/ # Bare metal apps (tinkerbell) │ ├── capi/ # Cluster API operator and providers │ └── netris/ # Netris controller and operator ├── manifests/ │ └── capi-stack/ # CAPI provider manifests (k0smotron, tinkerbell) └── ansible/ ├── virtual-bm/ # Ansible playbooks for virtual baremetal lab └── netris-switches/ # Ansible for Netris switch VMs ``` ## Virtual Baremetal Lab The `ansible/virtual-bm/` directory contains playbooks for setting up a virtual bare metal environment for testing: - `playbook.yml` - Creates br-mgmt bridge (172.16.81.0/24) with NAT - `create-vms.yml` - Creates libvirt VMs with VirtualBMC for IPMI simulation - `destroy-vms.yml` - Tears down the virtual environment ### Virtual BM Summary | VM | MAC Address | VBMC Port | |-----|-------------------|-----------| | vm1 | 52:54:00:12:34:01 | 6231 | | vm2 | 52:54:00:12:34:02 | 6232 | | vm3 | 52:54:00:12:34:03 | 6233 | ## Netris Netris provides network automation for bare metal infrastructure. - `apps/netris/netris-controller.yaml` - Netris Controller for network management UI - `apps/netris/netris-operator.yaml` - Kubernetes operator for Netris resources - `ansible/netris-switches/` - Playbooks to create virtual Netris switch VMs ### Default Credentials netris-controller web UI: - Login: `netris` - Password: `newNet0ps` Change these after first login.