Initial commit: Turbo Mothership bare metal management cluster

- k0s bootstrap with Cilium and OpenEBS
- ArgoCD apps for infra, CAPI, Tinkerbell, and Netris
- Ansible playbooks for virtual baremetal lab and Netris switches
- CAPI provider manifests for k0smotron and Tinkerbell
This commit is contained in:
Pavel Basov
2025-12-15 19:59:58 +01:00
commit df9937f0c3
39 changed files with 1961 additions and 0 deletions

62
README.md Normal file
View File

@@ -0,0 +1,62 @@
# 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.