Skip to content

feat: Redeploy für Deployment und einzelne VMs mit Config-Override (#192) - #234

Merged
Gree44 merged 1 commit into
stagingfrom
feature/192-redeploy-vm-config
Jul 25, 2026
Merged

feat: Redeploy für Deployment und einzelne VMs mit Config-Override (#192)#234
Gree44 merged 1 commit into
stagingfrom
feature/192-redeploy-vm-config

Conversation

@Gree44

@Gree44 Gree44 commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Was

Bindet das Frontend an die bereits existierenden Backend-Redeploy-Endpoints an (Issue #192):

  • POST /deployments/{id}/redeploy — ganzes Deployment (alle VMs, sequentiell)
  • POST /deployments/{id}/instances/{iid}/redeploy — einzelne VM

Beide unterstützen Config-Overrides und einen preserve_credentials-Toggle. Das Backend war fertig — hier fehlte nur die UI.

Änderungen

  • api/deployments.ts: redeployDeployment() + redeployInstance() samt RedeployRequest-Typ. Body-Keys exakt nach dem eingefrorenen Backend-Schema (extra="forbid"); Fehler-Mapping mit .status/.body für 400 (Race-Schutz) / 403 / 404.
  • components/deployments/RedeployDialog.tsx (neu): gemeinsamer Dialog für Deployment- und VM-Redeploy. Editierbarer Config-Override (nur geänderte Keys werden gesendet), preserve_credentials-Checkbox (Default an) mit Warnhinweis beim Deaktivieren.
  • pages/DeploymentDetails.tsx: „Neu deployen"-Button in der Aktionen-Card (nur bei running, owner-gated) ersetzt den alten Platzhalter; per-VM-Handler an die Credential-Karten durchgereicht.
  • components/credentials/CredentialInstanceCard.tsx: optionale onRedeployInstance-Prop + „Neu deployen"-Button pro VM (nur Lecturer/Owner).
  • pages/DeploymentDetailsPage.tsx: onRefresh via reloadKey, damit der async 202-Statuswechsel (running → per-VM REDEPLOYING) sichtbar wird.

Design-Entscheidung

Config-Overrides werden ausschließlich beim Redeploy mitgegeben, nicht persistent gespeichert — so vom Backend-Vertrag abgedeckt. Die UI framed das als „für diesen Redeploy angewendet", nicht als „gespeichert".

Verifikation

Closes #192

)

Frontend-Anbindung an die bestehenden Backend-Redeploy-Endpoints:
- POST /deployments/{id}/redeploy (ganzes Deployment)
- POST /deployments/{id}/instances/{iid}/redeploy (einzelne VM)

Änderungen:
- api/deployments.ts: redeployDeployment() + redeployInstance() samt
  RedeployRequest-Typ. Body-Keys exakt nach dem eingefrorenen Backend-Schema
  (deployment_parameter_overrides, instance_parameter_overrides,
  preserve_credentials); Fehler-Mapping mit .status/.body für 400/403/404.
- components/deployments/RedeployDialog.tsx (neu): gemeinsamer Dialog für
  Deployment- und VM-Redeploy. Editierbarer Config-Override (nur geänderte
  Keys werden gesendet), preserve_credentials-Toggle (Default an) mit
  Warnhinweis. Klar kommuniziert, dass ein Redeploy destroy+recreate ist und
  Config-Änderungen nur für diesen Lauf gelten (nicht persistent gespeichert).
- pages/DeploymentDetails.tsx: "Neu deployen"-Button in der Aktionen-Card
  (nur bei running, owner-gated) ersetzt den alten Platzhalter; Dialog-State
  und per-VM-Handler an die Credential-Karten durchgereicht.
- components/credentials/CredentialInstanceCard.tsx: optionale
  onRedeployInstance-Prop + "Neu deployen"-Button pro VM (nur Lecturer/Owner).
- pages/DeploymentDetailsPage.tsx: onRefresh via reloadKey, damit der
  async 202-Statuswechsel (running -> per-VM REDEPLOYING) sichtbar wird.

Config-Overrides werden ausschließlich beim Redeploy mitgegeben (nicht
persistent), wie mit dem Backend-Vertrag abgestimmt.
@Gree44
Gree44 merged commit 893d8a9 into staging Jul 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants