add hetzner-vm-provision flow and document it in README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 17:59:52 +02:00
parent 3db560ec91
commit 56a5afddc2
2 changed files with 277 additions and 0 deletions
+37
View File
@@ -7,6 +7,7 @@ Aktuell enthalten:
* `docker_stack_inventory_scan.yaml`
* `build_select_options.py`
* `linux_apt-upgrade.yaml`
* `hetzner-vm-provision.yaml`
* `.env.example`
Der erste Flow scannt mehrere Docker-Hosts per SSH, sucht nach Docker-Compose-Stacks und schreibt daraus eine Dropdown-Liste in den Kestra KV-Store.
@@ -101,6 +102,42 @@ SSH_PRIVATE_KEY
---
### `hetzner-vm-provision.yaml`
Kestra-Flow zum Provisionieren einer Hetzner Cloud VM via Terraform — mit KI-gestützter Plan-Analyse und manuellem Approval-Gate.
**Namespace:** `hetzner`
Der Flow läuft in vier Phasen:
1. **Terraform Plan** — erstellt einen Plan für die neue VM (Ubuntu 24.04) im Hetzner-Datacenter; Terraform State wird im S3-Backend (Hetzner Object Storage) gespeichert
2. **LLM-Analyse** — GPT-4o-mini fasst den Plan auf Deutsch zusammen und bewertet ob er sicher aussieht
3. **Approval-Gate** — Kestra pausiert und wartet auf manuelle Freigabe
4. **Terraform Apply / Abbruch** — bei Freigabe wird die VM erstellt und die IPv4-Adresse ausgegeben; bei Ablehnung wird die Execution abgebrochen
Der Flow erwartet folgende Eingaben:
| Input | Typ | Beschreibung |
|---|---|---|
| `vm_name` | STRING | Eindeutiger VM-Name, z.B. `dev-server-01` |
| `server_type` | SELECT | `cx23` (2 vCPU / 4 GB) · `cx33` · `cx43` · `cx53` |
| `location` | SELECT | `nbg1` · `fsn1` · `hel1` |
| `team` | STRING | Label für die VM |
Benötigte Kestra Secrets:
```text
HCLOUD_TOKEN
SSH_KEY_NAME
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
TF_BACKEND_BUCKET
TF_BACKEND_ENDPOINT
OPENAI_API_KEY
```
---
### `.env.example`
Beispiel-Datei für benötigte Umgebungsvariablen und Secrets.