1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個贊
有一些幫助程序可以填充默認(rèn)值來代替空值/零值。
例如,查看Deployment 的SetObjectDefaults_Deployment 。
看起來調(diào)用它的正確方法是通過(*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)
? ? }
}
如果您需要不那么嚴(yán)格的比較,例如,如果您需要容忍一些注入的容器,那么應(yīng)該像這樣使用更寬松的東西。
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報(bào)