# K8S 操作类型定义

## 支持的操作

| Action | 说明 | 目标资源 | 参数 |
|--------|------|----------|------|
| `logs` | 获取日志 | Pod | container, tail_lines, follow |
| `exec` | 执行命令 | Pod | container, command[], timeout |
| `scale` | 扩缩容 | Deployment/StatefulSet | scale_count |
| `restart` | 滚动重启 | Deployment/StatefulSet | - |
| `delete` | 删除资源 | Pod/Deployment/Service等 | - |
| `get` | 获取信息 | 任意资源 | output_format |
| `apply` | 应用配置 | 任意资源 | yaml_content |

## 操作详情

### logs - 获取日志
```go
type LogsParams struct {
    Container string `json:"container"`
    TailLines int    `json:"tail_lines"` // 默认100，最大1000
    Follow    bool   `json:"follow"`     // 是否实时跟踪
}
```

### exec - 执行命令
```go
type ExecParams struct {
    Container string   `json:"container"`
    Command   []string `json:"command"`
    Timeout   int      `json:"timeout"` // 秒
}
```
**安全约束**：禁止执行 rm -rf、shutdown、reboot 等危险命令

### scale - 扩缩容
```go
type ScaleParams struct {
    Replicas int `json:"replicas"` // 目标副本数
}
```

### restart - 滚动重启
无额外参数，使用 kubectl rollout restart 等效操作

### delete - 删除资源
无额外参数，需确认资源类型和名称

### get - 获取信息
```go
type GetParams struct {
    OutputFormat string `json:"output_format"` // json, yaml, wide
}
```

### apply - 应用配置
```go
type ApplyParams struct {
    YamlContent string `json:"yaml_content"` // YAML内容
}
```

## 安全约束

1. **Namespace限制**：仅操作项目namespace内资源
2. **操作白名单**：仅允许上述7种操作
3. **命令过滤**：exec操作过滤危险命令
4. **日志限制**：tail_lines最大1000行
5. **超时控制**：所有操作必须设置timeout
