feat: use Kubernetes revision-based rollback for instant app rollback

- Add revisionHistoryLimit: 10 and change-cause annotation to K8s deployments
- Add getDeploymentRevisions() to list ReplicaSet revision history
- Add rollbackDeploymentRevision() using K8s API (instant, no rebuild)
- Refactor snapshot rollback: use K8s revision for app, keep file-based DB/wp-content restore
- Add GET /snapshots/applications/:appId/revisions endpoint
- Add POST /snapshots/applications/:appId/revisions/:rev/rollback endpoint
- Add K8sRevision and K8sRevisionData types to frontend
- Redesign UI with two tabs: K8s Revisions (instant) + File Snapshots (full backup)
- K8s Revisions tab shows deployment history with one-click instant rollback
- File Snapshots tab retains download, DB restore, and wp-content restore
This commit is contained in:
keyhan
2026-04-08 02:26:51 +03:30
parent d3a5240528
commit d01a0a5e8c
6 changed files with 517 additions and 171 deletions
+14
View File
@@ -311,3 +311,17 @@ export interface AppSnapshot {
createdBy: string;
createdAt: string;
}
export interface K8sRevision {
revision: number;
image: string;
changeCause: string;
createdAt: string;
replicas: number;
isCurrent: boolean;
}
export interface K8sRevisionData {
revisions: K8sRevision[];
currentRevision: number;
}