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 關注
- 123 瀏覽
添加回答
舉報