- 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
63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
# 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.
|