init studio admin backend

This commit is contained in:
2026-07-01 17:30:04 +09:00
commit 4437d9980d
144 changed files with 44964 additions and 0 deletions
+111
View File
@@ -0,0 +1,111 @@
import { Body, Controller, Delete, Get, Param, Post, Query } from '@nestjs/common';
import { ScaleWorkloadDto } from './dto/scale-workload.dto';
import { RuntimeService } from './runtime.service';
@Controller('runtime')
export class RuntimeController {
constructor(private readonly runtimeService: RuntimeService) {}
@Get('namespaces')
listNamespaces() {
return this.runtimeService.listNamespaces();
}
@Get('workloads')
listWorkloads(@Query('namespace') namespace?: string) {
return this.runtimeService.listWorkloads(namespace);
}
@Get('metrics/pods')
listPodMetrics(@Query('namespace') namespace?: string) {
return this.runtimeService.listPodMetrics(namespace);
}
@Post('workloads/:namespace/:kind/:name/restart')
restartWorkload(
@Param('namespace') namespace: string,
@Param('kind') kind: string,
@Param('name') name: string,
) {
return this.runtimeService.restartWorkload(namespace, kind, name);
}
@Post('workloads/:namespace/:kind/:name/scale')
scaleWorkload(
@Param('namespace') namespace: string,
@Param('kind') kind: string,
@Param('name') name: string,
@Body() body: ScaleWorkloadDto,
) {
return this.runtimeService.scaleWorkload(
namespace,
kind,
name,
body.replicas,
);
}
@Delete('workloads/:namespace/:kind/:name')
deleteWorkload(
@Param('namespace') namespace: string,
@Param('kind') kind: string,
@Param('name') name: string,
@Query('deleteService') deleteService?: string,
) {
return this.runtimeService.deleteWorkload(
namespace,
kind,
name,
deleteService === 'true',
);
}
@Get('workloads/:namespace/:kind/:name/pvcs')
listWorkloadPersistentVolumeClaims(
@Param('namespace') namespace: string,
@Param('kind') kind: string,
@Param('name') name: string,
) {
return this.runtimeService.listWorkloadPersistentVolumeClaims(
namespace,
kind,
name,
);
}
@Delete('workloads/:namespace/:kind/:name/pvcs/:claimName')
deleteWorkloadPersistentVolumeClaim(
@Param('namespace') namespace: string,
@Param('kind') kind: string,
@Param('name') name: string,
@Param('claimName') claimName: string,
) {
return this.runtimeService.deleteWorkloadPersistentVolumeClaim(
namespace,
kind,
name,
claimName,
);
}
@Get('workloads/:namespace/:kind/:name/logs')
getWorkloadLogs(
@Param('namespace') namespace: string,
@Param('kind') kind: string,
@Param('name') name: string,
@Query('tail') tail?: string,
) {
return this.runtimeService.getWorkloadLogs(
namespace,
kind,
name,
tail ? Number(tail) : 200,
);
}
@Get('events')
listEvents(@Query('namespace') namespace?: string) {
return this.runtimeService.listEvents(namespace);
}
}