83 lines
2.9 KiB
Markdown
83 lines
2.9 KiB
Markdown
# Environment Configurations
|
|
|
|
Per-environment connection configs, secrets, and deployment settings. Each
|
|
subdirectory represents a physical host (or host type) with its own network
|
|
topology, storage backend, and resource sizing.
|
|
|
|
## Directory layout
|
|
|
|
```
|
|
envs/
|
|
├── beelink/
|
|
│ ├── env # Secrets: PROXMOX_TOKEN_SECRET, etc. (gitignored)
|
|
│ ├── proxmox.yaml # Proxmox connection (gitignored)
|
|
│ ├── proxmox.yaml.example # Connection template (LAN, vmbr0, local-lvm)
|
|
│ ├── lab-cluster.yaml # 3-node cluster (4C/4G/50G)
|
|
│ ├── awx.yaml # AWX deployment settings
|
|
│ ├── haproxy.yaml # HAProxy deployment settings
|
|
│ └── observability.yaml # Monitoring stack settings
|
|
└── hetzner/
|
|
├── env # Secrets (gitignored)
|
|
├── proxmox.yaml # Proxmox connection (gitignored)
|
|
├── proxmox.yaml.example # Connection template (WireGuard, vmbr1, local-zfs)
|
|
├── lab-cluster.yaml # 3-node cluster (8C/16G/100G)
|
|
├── lab-production.yaml # OC + 3-node cluster
|
|
├── awx.yaml # AWX deployment settings
|
|
├── haproxy.yaml # HAProxy deployment settings
|
|
├── observability.yaml # Monitoring stack settings
|
|
└── setup/ # Host provisioning (Proxmox install guide + script)
|
|
├── README.md
|
|
├── hetzner-setup.md
|
|
├── hetzner-lab-guide.md
|
|
└── proxmox-setup
|
|
```
|
|
|
|
## How to use
|
|
|
|
### 1. Source the environment
|
|
|
|
Each environment has its own `env` file with the same variable names.
|
|
Source the one for the host you're targeting:
|
|
|
|
```bash
|
|
source envs/beelink/env # or: source envs/hetzner/env
|
|
```
|
|
|
|
### 2. Deploy VMs
|
|
|
|
```bash
|
|
bin/incusos-proxmox --proxmox envs/hetzner/proxmox.yaml \
|
|
envs/hetzner/lab-production.yaml
|
|
```
|
|
|
|
### 3. Deploy services with --config
|
|
|
|
```bash
|
|
bin/deploy-awx --config envs/hetzner/awx.yaml --deploy
|
|
bin/deploy-haproxy --config envs/hetzner/haproxy.yaml --deploy
|
|
bin/deploy-observability --config envs/hetzner/observability.yaml --deploy
|
|
```
|
|
|
|
## Adding a new environment
|
|
|
|
1. Create a new subdirectory: `envs/myhost/`
|
|
2. Copy `proxmox.yaml.example` from an existing env and edit
|
|
3. Create an `env` file with your secrets (same variable names)
|
|
4. Create lab YAML files sized for your hardware
|
|
5. Create `awx.yaml`, `haproxy.yaml`, `observability.yaml` with your IPs
|
|
|
|
## Key differences between environments
|
|
|
|
| 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 |
|