作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 CRD
像这样:
import v1 "k8s.io/api/core/v1"
type ApplicationSpec struct {
Name string `json:"name"`
PodSpec v1.PodSpec `json:"podSpec"`
...
}
PodSpec
来自我 CRD 中的核心 apigroup
Name
等简单字段。 , 使用正则表达式很容易检查它的正确性,而对于像
PodSpec
这样的复杂和原生类型,由于 k8s 已经有验证逻辑,我觉得正确的方法是在我的 Controller 中重用它,但我该怎么做呢?
最佳答案
您可以重复使用 upstream ValidatePodSpec
directly .
您需要先导入几个包:
import (
"k8s.io/kubernetes/pkg/apis/core/validation"
"k8s.io/apimachinery/pkg/util/validation/field"
)
ValidatePodSpec
在您的 Controller 方法中:
errs := validation.ValidatePodSpec(instance.podSpec, field.NewPath("podSpec"))
关于kubernetes - 如何在我自己的 CRD Controller 中重用 k8s 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61113732/
我是一名优秀的程序员,十分优秀!