1 回答
TA贡献1836条经验 获得超5个赞
有一些帮助程序可以填充默认值来代替空值/零值。
例如,查看Deployment 的SetObjectDefaults_Deployment 。
看起来调用它的正确方法是通过(*runtime.Scheme).Default
. 下面是展示总体思路的片段:
import (
"reflect"
appsv1 "k8s.io/api/apps/v1"
"k8s.io/client-go/kubernetes/scheme"
)
func compare() {
scheme := scheme.Scheme
// fetch the existing &appsv1.Deployment via API
actual := ...
expected := &appsv1.Deployment{}
// fill in the fields to generate your expected state
// ...
scheme.Default(expected)
// now you should have your empty values filled in
if !reflect.DeepEqual(expected.Spec, actual.Spec) {
reconcile(expected, actual)
}
}
如果您需要不那么严格的比较,例如,如果您需要容忍一些注入的容器,那么应该像这样使用更宽松的东西。
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报