87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
# Target Configurations
|
|
|
|
Target-specific Proxmox connection configs and lab definitions. Each
|
|
subdirectory represents a physical host (or host type) with its own
|
|
network topology, storage backend, and resource sizing.
|
|
|
|
## How it works
|
|
|
|
`incusos-proxmox` already supports `--proxmox FILE` to point at any
|
|
connection config. Targets are just an organizational convention --
|
|
no script changes required.
|
|
|
|
## Directory layout
|
|
|
|
```
|
|
targets/
|
|
├── beelink/
|
|
│ ├── proxmox.yaml.example # Connection template (LAN, vmbr0, local-lvm)
|
|
│ └── lab-cluster.yaml # 3-node cluster sized for beelink (4C/4G/50G)
|
|
└── hetzner/
|
|
├── proxmox.yaml.example # Connection template (WireGuard, vmbr1, local-zfs)
|
|
├── lab-cluster.yaml # 3-node cluster sized for hetzner (8C/16G/100G)
|
|
└── lab-production.yaml # OC + 3-node cluster for hetzner
|
|
```
|
|
|
|
## Usage
|
|
|
|
### 1. Copy the example and fill in credentials
|
|
|
|
```bash
|
|
cp incusos/targets/hetzner/proxmox.yaml.example incusos/targets/hetzner/proxmox.yaml
|
|
# Edit with your API token, host IP, etc.
|
|
```
|
|
|
|
### 2. Deploy with explicit --proxmox
|
|
|
|
```bash
|
|
incusos-proxmox --proxmox incusos/targets/hetzner/proxmox.yaml \
|
|
incusos/targets/hetzner/lab-cluster.yaml
|
|
```
|
|
|
|
### 3. Or symlink for convenience
|
|
|
|
```bash
|
|
# Point the auto-discovered proxmox.yaml at your active target
|
|
ln -sf targets/hetzner/proxmox.yaml incusos/proxmox.yaml
|
|
|
|
# Now deploy without --proxmox
|
|
incusos-proxmox incusos/targets/hetzner/lab-cluster.yaml
|
|
```
|
|
|
|
## Environment variables
|
|
|
|
`incusos-proxmox` reads `PROXMOX_TOKEN_SECRET` from the environment (or
|
|
the `env` file at the repo root). When working with multiple targets,
|
|
use different variable names per host:
|
|
|
|
```bash
|
|
# In env file
|
|
PROXMOX_TOKEN_SECRET=beelink-token-here
|
|
HETZNER_PROXMOX_TOKEN_SECRET=hetzner-token-here
|
|
```
|
|
|
|
Before deploying to a specific target, export the right secret:
|
|
|
|
```bash
|
|
# Deploy to Hetzner
|
|
export PROXMOX_TOKEN_SECRET="$HETZNER_PROXMOX_TOKEN_SECRET"
|
|
incusos-proxmox --proxmox incusos/targets/hetzner/proxmox.yaml \
|
|
incusos/targets/hetzner/lab-cluster.yaml
|
|
```
|
|
|
|
## Key differences between targets
|
|
|
|
| Setting | Beelink | Hetzner |
|
|
|---------|---------|---------|
|
|
| Host | 192.168.1.10 (LAN) | 10.10.0.1 (WireGuard) |
|
|
| Method | ssh | api |
|
|
| Bridge | vmbr0 | vmbr1 (private) |
|
|
| Storage | local-lvm | local-zfs |
|
|
| VLAN | 69 | *(none)* |
|
|
| Gateway | 192.168.100.1 | 10.10.0.1 |
|
|
| VM IPs | 192.168.102.x/22 | 10.10.0.x/24 |
|
|
| VM cores | 4 | 8 |
|
|
| VM memory | 4-8 GiB | 16 GiB |
|
|
| VM disk | 50 GiB | 100 GiB |
|