Files
LokiStack/frontend/src/srv/api/deployment.ts
T
Logan.LiandClaude 2a93de600d feat: LokiDeploy 初始提交 - 轻量级 K8s Loki 部署平台
Go(Gin) + React(Vite + shadcn/ui + Tailwind) 前后端分离,全中文 UI

- 集群管理:Kubeconfig / Token 双接入,kubectl + helm 部署
- 主机管理:SSH 密钥 / 密码双认证,CPU/内存/磁盘使用率监控,SSH 错误中文友好提示
- 存储配置、部署管理、系统设置
- Docker 镜像内置 kubectl + helm,开箱即用
- run.sh 一键启停(start/stop/restart/status)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-29 17:03:57 +08:00

29 lines
1.3 KiB
TypeScript

import { request } from './client';
import type { PageData, LokiDeployment, DeploymentLog, DashboardStats, CreateDeploymentRequest } from '@/types';
export const deploymentApi = {
list: (page = 1, pageSize = 10) =>
request<PageData<LokiDeployment>>(`/deployments?page=${page}&pageSize=${pageSize}`),
get: (id: number) => request<LokiDeployment>(`/deployments/${id}`),
create: (data: CreateDeploymentRequest) =>
request<LokiDeployment>('/deployments', { method: 'POST', body: JSON.stringify(data) }),
update: (id: number, data: Record<string, unknown>) =>
request<{ message: string }>(`/deployments/${id}`, { method: 'PUT', body: JSON.stringify(data) }),
remove: (id: number) => request<{ message: string }>(`/deployments/${id}`, { method: 'DELETE' }),
deploy: (id: number) => request<{ message: string }>(`/deployments/${id}/deploy`, { method: 'POST' }),
stop: (id: number) => request<{ message: string }>(`/deployments/${id}/stop`, { method: 'POST' }),
restart: (id: number) => request<{ message: string }>(`/deployments/${id}/restart`, { method: 'POST' }),
logs: (id: number, page = 1, pageSize = 50) =>
request<PageData<DeploymentLog>>(`/deployments/${id}/logs?page=${page}&pageSize=${pageSize}`),
stats: () => request<DashboardStats>('/deployments/stats'),
};