Repository navigation
v0.3.6 Release Notes
新功能
1. Kubernetes 资源验证注解
新增四个 Kubernetes 相关的验证注解,用于验证资源规格和 DNS 名称:
@dns1123_label - DNS 标签验证
验证字符串符合 RFC 1123 DNS 标签规范,适用于 Kubernetes 对象命名。
// validategen:@validate
type KubernetesObject struct {
// validategen:@required
// validategen:@dns1123_label
Namespace string // "default", "kube-system" ✓
// validategen:@required
// validategen:@dns1123_label
PodName string // "my-pod-123" ✓, "Pod" ✗, "-invalid" ✗
}DNS 标签规则:
- 只能包含小写字母、数字和连字符
- 必须以字母或数字开头和结尾
- 每个标签最多 63 个字符
@cpu - CPU 资源验证
验证 Kubernetes CPU 资源数量格式。
// validategen:@validate
type PodSpec struct {
// validategen:@required
// validategen:@cpu
CPURequest string // "500m", "1", "2" ✓
}支持的格式: 毫核 (500m)、核数 (1, 0.5)、科学记数法 (1e3m)
@memory - 内存资源验证
验证 Kubernetes 内存资源数量格式。
// validategen:@validate
type PodSpec struct {
// validategen:@required
// validategen:@memory
MemoryRequest string // "128Mi", "1Gi" ✓
}支持的格式: 二进制单位 (128Mi, 1Gi)、十进制单位 (128M, 1G)、字节数
@disk - 磁盘资源验证
验证 Kubernetes 存储资源数量格式。
// validategen:@validate
type PersistentVolume struct {
// validategen:@required
// validategen:@disk
StorageRequest string // "10Gi", "100Gi" ✓
}2. 字符串枚举别名类型支持
@oneof_enum 现在支持字符串类型的枚举别名:
// enumgen:@enum(string)
type Priority string
const (
PriorityLow Priority = "low"
PriorityMedium Priority = "medium"
PriorityHigh Priority = "high"
)
// validategen:@validate
type Task struct {
// validategen:@oneof_enum(Priority)
Priority Priority // 自动验证是否为有效的 Priority 值
}改进
文档更新
- 更新 validategen README,添加新注解的详细说明和示例
- 更新 AI Rules 文档,包含 Kubernetes 资源验证的使用指南
代码清理
- 移除未使用的函数,减少代码体积
- 修复 Makefile 中 ginkgo coverprofile 路径问题
升级指南
直接升级即可,无破坏性变更:
go install github.com/tlipoca9/devgen/cmd/devgen@v0.3.6