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

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 18:06:22 +02:00
parent eebacd248d
commit b4e6e023a1
2 changed files with 241 additions and 0 deletions
+30
View File
@@ -10,6 +10,7 @@ Aktuell enthalten:
* `hetzner-vm-provision.yaml`
* `hetzner-server-type-location-update.yaml`
* `hetzner-server-available-list.yaml`
* `hetzner-vm-destroy.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.
@@ -208,6 +209,35 @@ TF_BACKEND_ENDPOINT
---
### `hetzner-vm-destroy.yaml`
Kestra-Flow zum sicheren Löschen einer Hetzner Cloud VM via Terraform — mit Destroy-Plan, manuellem Approval-Gate und automatischer Inventar-Aktualisierung.
**Namespace:** `hetzner`
**Trigger:** Manuell (kein Schedule)
Der Flow läuft in vier Phasen:
1. **Terraform Destroy Plan** — erstellt einen Destroy-Plan für die gewählte VM; lädt den Terraform State aus dem S3-Backend
2. **Plan-Ausgabe loggen** — zeigt den vollständigen Destroy-Plan im Kestra-Log zur manuellen Prüfung
3. **Approval-Gate** — Kestra pausiert und wartet auf manuelle Freigabe
4. **Destroy / Abbruch** — bei Freigabe wird die VM gelöscht und anschließend automatisch der Subflow `hetzner-server-available-list` ausgeführt, um Inventar und KV-Store zu aktualisieren; bei Ablehnung wird abgebrochen
Die VM wird per dynamischem Dropdown aus dem KV-Key `hetzner_server_names` ausgewählt (befüllt durch `hetzner-server-available-list`).
Benötigte Kestra Secrets:
```text
HCLOUD_TOKEN
SSH_KEY_NAME
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
TF_BACKEND_BUCKET
TF_BACKEND_ENDPOINT
```
---
### `.env.example`
Beispiel-Datei für benötigte Umgebungsvariablen und Secrets.