# PFVCluster

Unified infrastructure repo for the Known Element Enterprises Proxmox R&D cluster.

**[→ Current Status](STATUS.md)** · **[→ Documentation Index](docs/docmap.md)** · **[→ Agent Guidelines](AGENTS.md)**

## Directory Structure

| Directory | Description |
|-----------|-------------|
| [`dcinfra/`](dcinfra/) | Data-center infrastructure: PDU (`powerman/`), serial console (`console/`), UPS (`ups/`) |
| [`netinfra/`](netinfra/) | DNS/NTP/DHCP setup + audit scripts, DNS cluster replication (`dns-cluster-setup/`), switch captures (`switches/`), DHCP config (`dhcp/`) |
| [`k8s/`](k8s/) | k3s cluster setup scripts (HA control plane over Tailscale) + co-located docs |
| [`proxmox/`](proxmox/) | Proxmox fleet docs (hardware audit, capacity, storage, k8s host planning) + performance tuning (`perf/`) |
| [`awx/`](awx/) | Ansible AWX deployment (k3s + AWX Operator) |
| [`tests/`](tests/) | Test suite + VM validation harness + `remote.sh` SSH chokepoint |
| [`docs/`](docs/) | Server-build docs, documentation index ([docmap](docs/docmap.md)), and archive |
| [`archive/`](archive/) | Historical/superseded code (provisioning → replaced by KNELIAC project) |
| [`vendor/`](vendor/) | Vendored KNELShellFramework |

## Quick Start

### Provision a new server
```bash
sudo bash provisioning/SetupNewSystem.sh
```

### Validate on the sandbox VM
```bash
VM_ID=6000 ./tests/vm-validation.sh all
```

### Deploy DNS cluster
```bash
cd dns-cluster-setup/ && ./setup.sh all
```

### Deploy perf tunings
```bash
cd perf/ && ./deploy-tuning.sh
```

## Architecture

- **Proxmox hosts**: 7 standalone PVE installs managed via PDM
- **DNS**: Technitium (authoritative) + Pi-hole (recursive) on pfv-netinfra-01/02
- **NTP**: pfv-netinfra-01/02 (redundant, LAN IPs, stratum 2/3)
- **Production**: Cloudron VPS in Reston VA (this cluster is R&D only)
- **Backups**: Proxmox Backup Server (PBS)
